watchOS 如何找到主情节提要文件?
Posted
技术标签:
【中文标题】watchOS 如何找到主情节提要文件?【英文标题】:How does watchOS find the main storyboard file? 【发布时间】:2017-03-27 23:11:10 【问题描述】:出于功能标志的原因,我想要两个故事板文件。一次只会使用一个,但我希望有两个文件用于在构建之间来回切换。但是,我找不到 watchOS 确定要加载哪个情节提要文件的位置。
ios 在 Info.plist 中有一个键 UIMainStoryboardFile
。但是watchOS has no such key。
当我在 General 和 Info 部分检查我们当前的 Watch Extension 和 Watch App 目标时,我没有看到故事板文件的提及。
请注意,watchOS 确实 具有 Info.plist 的 WKExtensionDelegateClassName
键,这也将用于我的功能标志目的。但是,我的WKExtensionDelegate
中没有代码指定特定的故事板。
在 Xcode 中,当我在 File Inspector 右侧窗格中查看当前观看故事板文件时,我没有看到初始故事板的特殊指示器标记。以防万一它被列在那里。
App Programming Guide for watchOS 也没有解释如何建立连接。
有什么想法吗?
【问题讨论】:
【参考方案1】:所以经过多次试验:
结论:
我不能在 watchOS 中拥有互斥的 Storyboard。 watchOS 似乎将所有情节提要合并为一件事。 因此,当您按名称引用WKInterfaceController
时,watchOS 只会选择正确的故事板。
要展示标志情节提要场景,请确保您没有加载错误的场景。
证据
如果在多个情节提要中将多个界面控制器指定为“是初始控制器”,则构建 watchOS 应用程序扩展会失败并出现错误。错误是:
Multiple main entry points were specified. Please designate a single interface controller as the entry point of your watch application.
我设计了以下场景并且成功了:
带有接口控制器标识符“Bobby”的 Main.storyboard。 Main2.storyboard 带有接口控制器标识符“Sue”。 Main2.storyboard 接口控制器Sue“是初始控制器”。 Bobby 有一个调用WKInterfaceController.reloadRootControllers(withNames: ["Sue"], contexts: nil)
的按钮
按钮按预期工作并从 Bobby 加载 Sue 界面控制器场景。
【讨论】:
以上是关于watchOS 如何找到主情节提要文件?的主要内容,如果未能解决你的问题,请参考以下文章