pushControllerWithName不起作用

时间:2015-05-03 08:34:02

标签: ios objective-c watchkit

我试图使用标识符" InterfaceControllerTodoItemTapped"来推送一个接口控制器。以编程方式(部署目标iOS 8.2)轻触WKInterfaceTable行:

[self pushControllerWithName:@"InterfaceControllerTodoItemTapped" context:nil];

源控制器是基于页面的导航设置的一部分。

接收接口控制器的标识符字段设置为" InterfaceControllerTodoItemTapped"。

问题:虽然达到了上述推送命令(使用断点确认),但未显示InterfaceControllerTodoItemTapped,并且未调用其方法awakeWithContext(使用断点确认)。

3 个答案:

答案 0 :(得分:14)

Apple的documentation声明必须选择基于页面的导航或分层导航。它们是相互排斥的。

因此,使用pushControllerWithName呈现控制器不适用于基于页面的导航。

解决方案是使用以下方法以模态方式显示控制器:

[self presentControllerWithName:@"InterfaceControllerTodoItemTapped" context:nil];

答案 1 :(得分:5)

如果您推送的界面控制器是分层导航,请确保 -

  属性检查器中的

标识符字段已设置。

[self pushControllerWithName:@"SSWatchTableInterfaceController" context:nil];

enter image description here

答案 2 :(得分:0)

适用于 Swift 5+ 版本

self.pushController(withName: "SecondWKVC", context: nil)