我想在Watch应用程序故事板上有几个视图控制器。问题是我想根据我正在构建的目标加载不同的初始视图控制器。
我可以看到在WKInterfaceController上有一个名为“是初始控制器”的值,但我找不到以编程方式设置初始视图的方法。我尝试使用其他提供的方法,但所有方法都在原始初始化的第二个视图上推送,这不是我想要的(顶部栏上有一个后退按钮)。
如果你有任何办法,你可以考虑支持这个很棒。创建不同的故事板文件是最后一个选项。
答案 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
方法来自init
或awakeWithContext:
方法。
如果您使用的是分层界面而不是基于页面的界面,那么您的应用将始终以相同的初始视图开头。