我在手錶應用程序的擴展代理中觀看了連接設置,我想在調用某個方法時推送控制器。但不能在擴展委託上調用pushControllerWithName:context:
。如何從ExtensionDelegate推控制器WatchKit
有沒有辦法從推廣代表推控制器?
萬分感謝
我在手錶應用程序的擴展代理中觀看了連接設置,我想在調用某個方法時推送控制器。但不能在擴展委託上調用pushControllerWithName:context:
。如何從ExtensionDelegate推控制器WatchKit
有沒有辦法從推廣代表推控制器?
萬分感謝
你可以繼承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
}
}
...
}
嗨,謝謝你。我試圖繼承視圖控制器,但作爲appDelegate(我想要行動的代碼)是NSObject它不讓我做它與UIResponder和UIViewController錯誤的多個繼承評論。我想知道上面提到的Gerd委託方法可能是最好的方法,但我正努力嘗試新的編碼方式。有沒有人知道我能找到一些關於如何做到這一點的swift代碼?在此先感謝幫助新手:) – Ultronn
正如@丹已經在評論中指出的,您可以使用[WKExtension sharedExtension].rootInterfaceController
得到你的根控制器的參考。從那裏你可以使用pushControllerWithName:context:
來推動控制器。
Swift3更新:'WKExtension.shared()。rootInterfaceController?' –
我發現添加下面的行來讓根控制器爲我使用Swift工作。
rootInterfaceController?.pushController(withName: "MapController", context: path)
您可以從您的分機代表通過'[WKExtension sharedExtension] .rootInterfaceController' – dan
喜丹根接口控制器的參考,這是偉大的。非常感謝。我還可以問什麼是最好的代碼,然後在應用程序代理上激活所按下的控制器上的UIbutton動作。 – Ultronn
您可以使用委託模式。簡而言之::你在你的擴展中有一個委託變量並且調用它。它由控制器在你想要推送的地方執行。控制器你想從推送集extension.myDelegate = self。 –