如何从ExtensionDelegate WatchKit推送控制器

时间:2015-11-10 19:49:26

标签: ios controller push watchkit watch-os-2

我在我的手表应用程序的Extension Delegate中设置了手表连接设置,并且我想在调用某个方法时按下控制器。但是,无法在扩展委托上调用pushControllerWithName:context:

有没有办法可以从Extension Delegate推送控制器?

万分感谢

3 个答案:

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

    ...
}