Watchkit 中的 GlanceController 和 InterfaceController 如何通信?
How do I communicate between GlanceController and InterfaceController in Watchkit?
根据 Watchkit 的 Apple documentation,使用 willActivate
用最新信息更新 glance 场景。访问 "most up to date" 信息的推荐方式是什么,或者换句话说,我如何在 GlanceController
和 InterfaceController
之间进行通信?我目前正在使用 Swift 但 Obj-C 中的答案也很好。
我似乎无法在文档中找到它。
你可以在 glance controller 中工作,就像在 interface controller 中工作一样获取 "most up to date" 信息并将结果保存到 NSUserdefault,然后你从 Interface Controller 中的 NSUserDefault 返回结果。
您需要在界面控制器中实现:- (void)handleUserActivity:(NSDictionary *)userInfo。
在 Glance Controller 中调用 updateUserActivity:userInfo: 使用您要传递给 interfaceController 的 userInfos。
你是说从 Glance Controller 切换到 Interface Controller 吗?
协调切换
如果是这样,你会想要查看 Coordinating Handoff Activity
实施func handleUserActivity(_ userInfo: [NSObject : AnyObject]!)
在您的初始界面控制器上。
然后是 updateUserActivity:userInfo: 方法的 userInfo 字典,并提供从 Glance -> Watch App 转换的上下文。
共享数据
要与您的 Glance 共享最多的 'up-to-date' 数据,您应该设计您的 Watch Extension/iOS 应用程序以定期将数据保存到 Shared App Container 中,您的 iOS app 和 Extension 可以访问。当您的 Glance 打开时,它只会从共享容器中获取数据(预计是最新的)并显示它。
根据 Watchkit 的 Apple documentation,使用 willActivate
用最新信息更新 glance 场景。访问 "most up to date" 信息的推荐方式是什么,或者换句话说,我如何在 GlanceController
和 InterfaceController
之间进行通信?我目前正在使用 Swift 但 Obj-C 中的答案也很好。
我似乎无法在文档中找到它。
你可以在 glance controller 中工作,就像在 interface controller 中工作一样获取 "most up to date" 信息并将结果保存到 NSUserdefault,然后你从 Interface Controller 中的 NSUserDefault 返回结果。
您需要在界面控制器中实现:- (void)handleUserActivity:(NSDictionary *)userInfo。 在 Glance Controller 中调用 updateUserActivity:userInfo: 使用您要传递给 interfaceController 的 userInfos。
你是说从 Glance Controller 切换到 Interface Controller 吗?
协调切换
如果是这样,你会想要查看 Coordinating Handoff Activity
实施func handleUserActivity(_ userInfo: [NSObject : AnyObject]!)
在您的初始界面控制器上。
然后是 updateUserActivity:userInfo: 方法的 userInfo 字典,并提供从 Glance -> Watch App 转换的上下文。
共享数据
要与您的 Glance 共享最多的 'up-to-date' 数据,您应该设计您的 Watch Extension/iOS 应用程序以定期将数据保存到 Shared App Container 中,您的 iOS app 和 Extension 可以访问。当您的 Glance 打开时,它只会从共享容器中获取数据(预计是最新的)并显示它。