watchOS如何找到主要的故事板文件?

时间:2017-03-27 23:11:10

标签: watchkit info.plist

我想有两个故事板文件用于功能标记的原因。一次只能使用一个,但我希望有两个文件可以在构建之间来回切换。但是,我无法找到watchOS确定要加载哪个storyboard文件的位置。

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 个答案:

答案 0 :(得分:2)

经过多次试验:

结论:

  • 我不能在watchOS中拥有互斥的故事板。
  • watchOS似乎将所有故事板合并为一件事。
  • 因此,当您按名称引用WKInterface​Controller时,watchOS会选择正确的故事板。
  • 要设置标记故事板场景,请确保不加载错误的场景。

证据

如果在多个故事板中将多个接口控制器指定为“是初始控制器”,则构建watchOS应用程序扩展会失败并显示错误。错误是: Multiple main entry points were specified. Please designate a single interface controller as the entry point of your watch application.

我设计了以下方案并且有效:

  • Main.storyboard,接口控制器标识符为“Bobby”。
  • Main2.storyboard,接口控制器标识符为“Sue”。
  • Main2.storyboard接口控制器 Bobby “是初始控制器”。
  • Bobby有一个调用WKInterfaceController.reloadRootControllers(withNames: ["Sue"], contexts: nil)
  • 的按钮
  • 按钮按预期工作,并从 Bobby 加载 Sue 接口控制器场景。