我有一种情况需要在多个WKInterfaceControllers之间共享WCSession。单例方法无法工作,一旦将委托设置为类,其他类中的所有委托都将失效。场景:接口A基于数据内容发送和接收数据,呈现接口B.点击接口B,将请求和接收附加数据。你如何在A和B之间分享WCSession?
答案 0 :(得分:1)
The other answer并未解释应用范围的会话是否有效。
你可以使用适用于所有界面控制器的应用范围WCSession
单例。您只需在应用程序生命周期的早期实例化会话管理器,并让它成为自己的委托。
会话管理器(单例)可以处理接口控制器的所有传输,而不是尝试让每个接口控制器处理会话委派(这将无法正常工作)。
如其他答案中所述,您可以使用通知让感兴趣的接口控制器知道新数据何时到达。
使用模块化方法(例如会话或数据管理器)有助于将此类代码保留在控制器之外,而控制器实际上并不属于该控制器。它还可以更轻松地测试和使用每个模块。
我不会在这里重复代码,因为Stack Overflow上已经发布了几个现有的答案,以及 网上的文章,详细介绍了这项技术。例如:
您经常会在较窄的问题中找到这些类型的答案,这些问题会询问如何在手表应用程序及其复杂控制器之间共享数据。
答案 1 :(得分:0)
使用NSNotification并侦听所有视图控制器中的更改。