如何在watchOS中获取接口控制器的实时实例?

时间:2016-03-13 21:50:56

标签: swift swift2 watch-os-2 watch-os

在我的ExtensionDelegate中,我想获得一个接口控制器的实例。我正在使用基于页面的导航。

例如,我可以在iOS中执行此操作:

if let controller = self.tabBarController?.viewControllers?[1] as? TimesController {
 controller.myVariable = nil
}

我如何在watchOS中执行此操作?

3 个答案:

答案 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