我在我的手表应用程序的Extension Delegate中设置了手表连接设置,并且我想在调用某个方法时按下控制器。但是,无法在扩展委托上调用pushControllerWithName:context:
。
有没有办法可以从Extension Delegate推送控制器?
万分感谢
答案 0 :(得分:2)
正如@dan在评论中指出的那样,您可以使用[WKExtension sharedExtension].rootInterfaceController
获取对根控制器的引用。从那里你可以使用pushControllerWithName:context:
来推动控制器。
答案 1 :(得分:0)
我发现使用Swift添加以下行以获取根控制器对我有效。
rootInterfaceController?.pushController(withName: "MapController", context: path)
答案 2 :(得分:-1)
您可以继承WKInterfaceController
并将当前控制器存储在某个位置。
class BaseInterfaceController: WKInterfaceController {
...
override func willActivate() {
super.willActivate()
// store current controller with some weak reference
XXXManager.shareInstance().currentController = self
}
override func didDeactivate() {
super.didDeactivate()
if XXXManager.shareInstance().currentController == self {
XXXManager.shareInstance().currentController = nil
}
}
...
}