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