如何在storyboard上设置初始控制器以编程方式包含WKInterfaceController?

时间:2015-04-30 10:18:39

标签: ios xcode6 watchkit

我想在Watch应用程序故事板上有几个视图控制器。问题是我想根据我正在构建的目标加载不同的初始视图控制器。

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

如果你有任何办法,你可以考虑支持这个很棒。创建不同的故事板文件是最后一个选项。

2 个答案:

答案 0 :(得分:4)

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

我将WKViewController的标识符设置为" exampleViewControllerName" (在StoryBoard上)并将此代码添加到awakeWithContext:context

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

你肯定可以使用上下文并使其变得更复杂,但这是它的基础,并且对于最简单的答案来说已经足够了。

答案 1 :(得分:0)

您实际上问的是如何控制手表套件应用程序的初始视图控制器。

来自Apple Watch Programming Guide

  

创建基于页面的界面中的所有接口控制器   在显示界面之前初始化,但只有一个界面   一次显示控制器。通常,WatchKit会显示   最初的序列中的第一个接口控制器。要改变   最初显示的界面控制器,调用becomeCurrentPage   方法来自initawakeWithContext:方法。

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