故事板例外 - 故事板不包含带有标识符的视图控制器
Posted
技术标签:
【中文标题】故事板例外 - 故事板不包含带有标识符的视图控制器【英文标题】:STORYBOARD EXCEPTION - Storyboard doesn't contain a view controller with identifier 【发布时间】:2014-08-21 19:49:07 【问题描述】:我目前正在为 iPhone 和 iPad 开发一个 ios 应用程序。我试图展示一个 NavigationController 来制作一个显示文件的模块。在 iPhone 上它工作得很好,但我不能让它在 iPad 上工作。
我收到以下错误:
'Storyboard (<UIStoryboard: 0x919b200>) doesn't contain a view controller with identifier 'FilesNavigation''
这是代码:
case 10: // Files
UINavigationController *navigationController = [storyboard instantiateViewControllerWithIdentifier:@"FilesNavigation"];
FilesViewController *filesViewController = [storyboard instantiateViewControllerWithIdentifier:@"Files"];
[navigationController pushViewController:filesViewController animated:YES];
self.slidingViewController.topViewController = navigationController;
break;
在我的故事板中,我已经为导航控制器设置了故事板 ID。
>##Custom Class
>Class: UINavigationController
>##Identity
>Storyboard ID: FilesNavigation
我将此代码用于其他模块的 switch/case 块上的另一个案例,它也适用于 iPad,这是我第一次遇到此错误。
【问题讨论】:
请添加一个屏幕截图,显示您的故事板属性的外观 我没有足够的声望,无法添加截图。 【参考方案1】:我想通了,问题是故事板没有在设备中更新。
-
从模拟器/iPhone/iPad 中卸载应用程序
产品 > 清洁
构建并运行
正如@T0m_Twt 在此question 中的回答所述
【讨论】:
请确保将其作为正确答案;) 当然可以,但我明天可以接受自己的答案。谢谢 超级烦人,我永远不会认为这是解决方案。 你成就了我的一天 谢谢...这代表了我讨厌 iOS 的一切。【参考方案2】:在右侧窗格中,在身份检查器部分为您的导航控制器提供故事板 ID。
我给你截图了
【讨论】:
【参考方案3】:这是另一个案例:
有两个本地化故事板。其中只有一个具有您想要的视图控制器。
【讨论】:
在浪费了我一段时间(Xcode 的正常一天)之后,这就是解决方案!谢谢! 天哪!你救了我的命!哈哈哈干杯【参考方案4】:碰巧,您有 iPhone 的故事板和 iPad 的不同故事板吗?如果你这样做了,那么 iPad 可能没有带有该标识符的情节提要。此外,在 iPad 上运行时,请在代码中设置断点并验证您的“故事板”对象是什么。
我在 UIStoryboard 上使用了一个类别,该类别将为我提供每个平台的故事板。
我可以使用 [UIStoryboard storyboardHome] 这将确定它是否需要特定于 iPad 或 iPhone 并将其返回给我。我还确保我的故事板遵循正确的命名。所以我会有 Home_iPad 和 Home_iPhone。
【讨论】:
我有一个用于 iPhone 的情节提要和另一个用于 iPad 的情节提要,但我已经在两个情节提要中都有带有该标识符的导航控制器。 仔细检查错别字,我已经做到了。似乎名称错误,或者您认为已加载的情节提要不是带有控件的情节提要。可以分享一下项目吗? 感谢 @Justin Holman,我的故事板没有正确加载,但我已经使用 Clean 然后 Build & Run 解决了【参考方案5】:TL;DR - 清除所有内容并删除旧版本的应用(如果有的话)。
这听起来可能很疯狂,但是假设如果您更改了目标名称并更改了捆绑名称,那么您可能在模拟器/设备中同时安装了旧版本和新版本的应用程序,这可能会给您带来麻烦UIStoryboard
instance 未能实例化某些视图控制器,这最终可能会导致问题中描述的问题。要解决它,您需要删除所有相关的应用程序或简单地重置模拟器/设备。
【讨论】:
以上是关于故事板例外 - 故事板不包含带有标识符的视图控制器的主要内容,如果未能解决你的问题,请参考以下文章