在我的ExtensionDelegate
中,我想获得一个接口控制器的实例。我正在使用基于页面的导航。
例如,我可以在iOS
中执行此操作:
if let controller = self.tabBarController?.viewControllers?[1] as? TimesController {
controller.myVariable = nil
}
我如何在watchOS
中执行此操作?
答案 0 :(得分:4)
使用以下代码:
guard let interface = WKExtension.shared().rootInterfaceController as? InterfaceController else {
return
}
答案 1 :(得分:0)
你做不到。 watchOS上没有页面视图控制器的概念,它可以容纳一组接口控制器。
由于您无法传递另一个上下文来准备页面segue,因此您需要在willActivate()
方法中更新该特定接口控制器的属性:
override func willActivate() {
super.willActivate()
myVariable = ...
}
答案 2 :(得分:0)
从Watch OS 4+开始,我们可以使用visibleInterfaceController
:
WKExtension.shared().visibleInterfaceController
visibleInterfaceController
返回最后一个可见的接口控制器。
参考:https://developer.apple.com/documentation/watchkit/wkextension/2868459-visibleinterfacecontroller