Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/99.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何以编程方式设置故事板上的初始控制器?_Ios_Xcode6_Watchkit - Fatal编程技术网

Ios 如何以编程方式设置故事板上的初始控制器?

Ios 如何以编程方式设置故事板上的初始控制器?,ios,xcode6,watchkit,Ios,Xcode6,Watchkit,我希望在Watch应用程序情节提要上有几个视图控制器。问题是,我想根据构建的目标加载不同的初始视图控制器 我可以看到WKInterfaceController上有一个名为“is initial controller”的值,但我找不到一种方法以编程方式设置初始视图。我尝试使用提供的其他方法,但所有方法都将第二个视图按在原始首字母的顶部,这不是我想要的(顶部栏上有一个后退按钮) 如果你有什么办法可以支持这一点,那太好了。创建不同的故事板文件是最后一个选项。您实际要问的是如何控制手表套件应用程序的初始

我希望在Watch应用程序情节提要上有几个视图控制器。问题是,我想根据构建的目标加载不同的初始视图控制器

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


如果你有什么办法可以支持这一点,那太好了。创建不同的故事板文件是最后一个选项。

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

基于页面的界面中的所有界面控制器都将创建并 在显示界面之前初始化,但仅显示一个界面 每次显示一个控制器。通常,WatchKit显示 序列中的第一个接口控制器。改变现状 最初显示的界面控制器,调用
becomeCurrentPage
方法从其
init
awakeWithContext:
方法


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

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

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

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

您当然可以使用上下文并使其更复杂,但这是它的基础,并且足以得到最简单的答案。

初始视图控制器标志只是故事板文件中的一个条目。您不能在运行时设置它。@Paulw11我知道,但是有没有办法设置初始WKViewController?