Xcode:"由于缺少入口点,场景无法访问",但无法找到它

Wol*_*lfy 89 xcode warnings storyboard ios

Xcode 4.5.2给了我以下警告:

Unsupported Configuration    
Scene is unreachable due to lack of entry points and does not have an identifier 
for runtime access via -instantiateViewControllerWithIdentifier:.
Run Code Online (Sandbox Code Playgroud)

不幸的是,我无法确定有罪的场景.在"问题导航器"中选择警告不会突出显示故事板中的任何内容.我有一个相当复杂的故事板(30多个场景).

有什么建议?

警告的屏幕截图

bob*_*ble 139

在故事板中,选择每个视图控制器(下图中的红色箭头)并查看故事板ID字段(红色椭圆).Storyboard ID字段都不应为空.当你找到一个,那就是罪魁祸首.

在此输入图像描述

  • 嗨@bobnoble,谢谢你的回复.一个问题:我为什么要为每个场景设置故事板ID?我不认为这是强制性的,不是吗?我知道如果我想以编程方式访问场景,我必须设置ID,但如果我的所有场景都通过segues连接怎么办?或者它只是良好的编程习惯? (6认同)
  • 尝试这个解决方案,我意识到只填充一个特定的`故事板ID'删除了警告 (2认同)

小智 50

虽然这个帖子已经老了,但我没有看到一个答案描述了什么对我有用,所以这里......

我有这个错误,故事板的视觉检查显示所有的视图控制器似乎都连接到根视图控制器.

我尝试在故事板中命名所有17个视图控制器(如@ bobnoble的答案).我使用了基于视图控制器的长名称的命名约定,例如"作业视图控制器"的"jvc".当我尝试构建时,我收到一条错误消息,指向其中一个视图控制器具有重复的名称.跟踪事情,我发现我有一个视图控制器的实际副本堆叠在它的双胞胎顶部.我怀疑它是用户界面实验的剪切和粘贴损坏,我没有完全退出.

无论如何,删除未连接的双胞胎解决了我的问题.之后,我删除了所有VC名称,因为它们未在代码中引用.

  • 这也发生在我身上,但我仍然需要填充其中一个空的"故事板ID" (3认同)

w0m*_*bat 29

我只是在一个简单的单场景故事板上遇到了这个确切的错误,而我所要做的就是检查故事板中1视图控制器的"是初始视图控制器"复选框.我怀疑Xcode在这种情况下默认为你检查这个框,但不再这样.

选中底部的框

                                     

选中故事板中的一个视图控制器的复选框,你应该很好.


Sco*_*ets 20

我担心你将不得不浏览所有30个,并检查他们是否有故事板ID或视图控制器的segue.其中一个是必需的,两者都是一种选择.

  • 在所有视图控制器都具有segue或ID之后,错误消息可能仍然存在.在这种情况下,清洁产品,它将消失. (5认同)
  • 在我的情况下,产品清理不足以在我修复错误后摆脱错误消息.当我重新启动Xcode时它消失了.(我没有尝试关闭/重新开放项目.这可能也有效.) (5认同)

sha*_*988 8

在以下情况中可能会发生此问题:

案例I: 如果故事板中的任何场景都没有标记为"isInitialViewController".

修复:识别根视图控制器并在SB中将其标记为"isInitialViewController".在这种情况下,故事板ID不是强制性的.

案例二

在某些情况下,您可能不需要在故事板中使用initialViewController.例如:使用多个故事板时.

修复:在这种情况下,请确保正确给出"故事板ID",并使用此ID引用故事板中使用的第一个场景.例如:

UIStoryboard *myStoryBoard = [UIStoryboard storyboardWithName:@"MyStoryBoardName" bundle:nil];
MyViewController *myViewController = (MyViewController *)[myStoryBoard instantiateViewControllerWithIdentifier:@"MyViewControllerId"];
Run Code Online (Sandbox Code Playgroud)

在这种情况下,"故事板ID"是强制性的.

案例III

你已经连接了initialViewController.但是你仍然得到这个警告.这是因为故事板中的某些场景可能没有与"segue"连接,并且它们也没有"故事板ID".扫描您的故事板,看看是否需要"segue".如果缺少segue,请将其连接起来.如果不需要segue,请确保您需要提供"storyboard id",因为它是从代码中引用场景的唯一方法,如上面的示例代码所示.

希望这可以帮助


Kam*_*pai 6

您无需Storyboard ID为所有场景设置或UINavigationController

好吧,我有大约50-60个场景,我刚收到这些警告,所以我意识到只有与segue没有连接的控制器(Scene)或NavigationController需要设置Storyboard ID.

在此输入图像描述

你可以看到上面的图像UINavigationController与segue没有联系,这是该警告的罪魁祸首.

只需给它一个Storyboard ID即可删除此警告.


小智 5

我遇到过同样的问题.我的故事板上有很多关于导航和标签栏控制器的观点.对我来说,这只是一个警告,让你知道有些观点没有关联. 确保所有视图都以某种方式连接到根视图控制器.我从头开始这个项目以消除此警告,并在未连接视图时注意到相同的警告.