从ExtensionDelegate类调用WKInterfaceController的公共方法 - WatchKit

时间:2016-01-27 09:20:14

标签: ios watchkit watch-os-2 wkinterfacecontroller

我打电话给

`[[WCSession defaultSession] updateApplicationContext:message error:error]` 

在我的

中触发的方法
 `-(void)session:(WCSession *)session didReceiveApplicationContext:(NSDictionary<NSString *,id> *)applicationContext`
ExtensionDelegate中的

方法。但是从这里我想在WKInterfaceController中调用一个公共方法来更新我的UI。我不想重新加载根控制器,因为这个特定的控制器不是根控制器。是否可以从ExtensionDelegate调用任何公共方法。我可以打电话吗

-(void)session:(WCSession *)session didReceiveApplicationContext:(NSDictionary<NSString *,id> *)applicationContext

从接口控制器中的某个位置

而不是ExtensionDelegate

1 个答案:

答案 0 :(得分:0)

您可以使用WCSession

public func sendMessage(message: [String : AnyObject], replyHandler: (([String : AnyObject]) -> Void)?, errorHandler: ((NSError) -> Void)?) 

这会调用WCSessionDelegate

public func session(session: WCSession, didReceiveMessage message: [String : AnyObject], replyHandler: ([String : AnyObject]) -> Void)
委托类中的

方法。这可以从应用程序和扩展程序中用于即时消息传输。阅读more