2

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

例如,我可以这样做iOS

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

我怎样才能做到这一点watchOS

4

3 回答 3

6

使用以下代码:

guard let interface = WKExtension.shared().rootInterfaceController as? InterfaceController else {
    return
}
于 2018-05-30T15:45:15.683 回答
2

从 Watch OS 4+ 开始,我们可以使用visibleInterfaceController

WKExtension.shared().visibleInterfaceController

可见接口控制器

返回最后一个可见的接口控制器。

参考:https ://developer.apple.com/documentation/watchkit/wkextension/2868459-visibleinterfacecontroller

于 2019-11-18T10:20:35.463 回答
0

你不能。watchOS 上没有页面视图控制器的概念,它可以容纳一组界面控制器。

由于您不能传递另一个上下文来准备页面 segue,因此您需要在其willActivate()方法中更新该特定接口控制器的属性:

override func willActivate() {
    super.willActivate()
    myVariable = ...
}
于 2016-03-15T00:05:13.513 回答