如果稍后将情节提要添加到项目中,为啥单视图应用程序不加载情节提要?

Posted

技术标签:

【中文标题】如果稍后将情节提要添加到项目中,为啥单视图应用程序不加载情节提要?【英文标题】:Why a singleView application doesn't load a storyboard if a storyboard is added later to the project?如果稍后将情节提要添加到项目中,为什么单视图应用程序不加载情节提要? 【发布时间】:2013-05-18 17:30:48 【问题描述】:

我创建了一个没有情节提要的新单视图应用程序(例如 FirstProject)和另一个带有情节提要的单视图应用程序(例如 SecondProject),然后在以前没有情节提要的应用程序中添加了一个情节提要。 然后我进入 FirstProject 并将情节提要的类更改为身份检查器中的 viewcontroller 类。 之后,我分别打开了两个项目中的其他文件,并在两个项目中的相应文件中将代码更改为相同。

现在,当我运行在创建时具有情节提要的项目时,会显示一个白色的空白屏幕,但另一个应用程序(后来添加情节提要)仅显示一个黑色屏幕,没有错误和警告。什么是这两个文件有什么区别?

我错过了什么。如何告诉应用程序现在应该从情节提要中加载其视图,而不是从 XIB 文件中加载,因为没有?

【问题讨论】:

所有文件都改了吗? 您是否从项目导航器中删除了 XIB 文件? 是的,我将两个项目中的文件完全相同,并且我还从项目中删除了 XIB 文件。 【参考方案1】:

我将“干得好”的建筑从零开始变成真正的 Grok 故事板。

你需要删除模板代码,只删除return YES;中的application:didFinishLaunchingWithOptions:

完成过程

使用“空应用程序”模板创建一个新项目。 新文件、用户界面、故事板 在目标摘要中设置情节提要(更新 info.plist) 删除模板代码,只删除return YES; in application:didFinishLaunchingWithOptions:

【讨论】:

感谢您的帮助。我已经从 application:didFinishLaunchingWithOptions: 函数中删除了所有内容。如第二个屏幕截图所示,我在 traget 摘要中包含了故事板的名称,并且它起作用了。非常感谢 Gayle。 我还有一个问题。在第一个屏幕截图中,您如何比较两个文件并在 XCode 中显示它们之间的差异。 Xcode 中有比较两个文件的选项吗? 知道了。点击 Xcode 右上角编辑器部分的第三个按钮即可获得该视图。【参考方案2】:

情节提要应用程序知道在启动时使用情节提要的方式是 Info.plist 文件包含指向主情节提要的条目。您需要进行设置。 “主故事板文件基础名称”(UIMainStoryboardFile)必须与故事板文件的基础名称匹配;系统会看到这一点并在应用启动时自动加载指定的故事板文件。

您还需要确保情节提要中的初始视图控制器被标记为初始视图控制器。

【讨论】:

但是我也比较了 info.plist 文件,也没有发现这两个文件有任何区别。 尽管如此,你会发现我对 info.plist 中的这个条目是正确的。顺便说一句,你正在做的是一件非常好的事情!尝试从头开始构建基于故事板的项目真的很好,这样您就会看到模板不是某种魔法。您应该能够从头开始构建 所有 模板项目类型!坚持下去。 顺便说一句,如果没有xib,则需要在storyboard中设计视图控制器。尝试给视图控制器的视图一个绿色背景或类似的东西,这样你就会知道它正在加载!

以上是关于如果稍后将情节提要添加到项目中,为啥单视图应用程序不加载情节提要?的主要内容,如果未能解决你的问题,请参考以下文章

添加到情节提要的 UIBarButtonItem 在运行时不会出现

如何将我的新视图添加到情节提要?

当我使用自动布局移动视图时,为啥 XCode 5 没有在情节提要中添加约束

iOS:如何以编程方式将视图添加到情节提要视图

将自定义视图控制器添加到情节提要

没有 TabBarController 的标签栏 - 为情节提要中的标签栏项目添加视图控制器