- (void)awakeWithContext:(id)context { [super awakeWithContext:context]; [WKInterfaceController reloadRootControllersWithNames:@[@"pageOne",@"pageTwo"] contexts:nil]; }
遵循Apple的指导方针
Call this method to reload the pages in your app’s page-based interface. At launch time,you use this method to customize the set of pages you want displayed.
在发布时,只会导致循环.每次重新加载调用awakeWithContext或将一次又一次地激活或初始化.
解决方法
这是WatchKit应用程序的常见问题,因为我们不再需要UIApplicationDelegate来处理此类设置.一个好方法是按如下方式构造代码:
> MainInterfaceController(故事板中的主要链接指向此处)
> PageOneInterfaceController – 您在页面集中显示的第一个界面
> PageTwoInterfaceController – 页面集中的第二个界面
MainInterfaceController永远不会实际显示.您将始终启动到另一组接口控制器,具体取决于MainInterfaceController.awakeWithContent()中随附iOS应用程序的缓存状态.这样,您使用MainInterfaceController的方式类似于我们在iOS中使用UIApplicationDelegate来设置窗口和根视图控制器.