2015-04-30 18 views
2

我想在Watch应用程序故事板上拥有几个视图控制器。问题是我想根据我正在构建的目标加载不同的初始视图控制器。如何在故事板上以编程方式设置包含WKInterfaceController的初始控制器?

我可以看到在WKInterfaceController上有一个叫做“初始控制器”的单个值,但我找不到以编程方式设置初始视图的方法。我尝试过使用其他提供的方法,但都是将第二个视图放在原始初始位置,这不是我想要的(顶部栏上有一个后退按钮)。

如果您有任何方法可以考虑支持这一点,那就太好了。创建一个不同的故事板文件是最后的选择。

+0

初始视图控制器标志只是故事板文件中的一个条目。你不能在运行时设置它。 – Paulw11

+0

@ Paulw11我明白,但有没有什么方法可以设置初始的WKViewController? – Idan

回答

4

实际上,解决方案非常简单。确实,这些页面是在运行时重建所有内容之前编译的。更多的是标志(初始控制器)在运行时无法更改,但您确定可以从头开始构建。

我设置WKViewController为“exampleViewControllerName”(在故事板)的标识,并添加此代码awakeWithContext:上下文

NSArray *array1=[[NSArray alloc] initWithObjects:@"exampleViewControllerName", nil]; 
[WKInterfaceController reloadRootControllersWithNames:array1 contexts:nil]; 

你肯定可以使用上下文并做出更复杂但是这是基本它的好处是足以让最简单的答案成为可能。

0

你究竟在问什么是如何控制手表套件应用程序的初始视图控制器。

Apple Watch Programming Guide

在基于页的接口中的所有接口控制器被创建并 显示接口之前进行初始化,但只显示一个界面 在一个时间控制器。通常情况下,WatchKit最初在序列中显示 第一个接口控制器。要更改初始显示的接口控制器,请从其initawakeWithContext:方法调用 方法。

如果您使用分层界面而不是基于页面的界面,那么您的应用程序将始终以相同的初始视图开始。

+0

感谢您的支持,请检查我的答案。这实际上可以做到...... – Idan

相关问题