2016-06-09 27 views
0

我正在使用watchOS 2Xcode 7.3。我有3个接口控制器(IC)在手表应用程序。我使用"[WCSession defaultSession] sendMessage"方法将消息从AppDelegate以3种不同的场景发送到这3个IC。所有3个IC都提供接收方法。但该消息大部分在第三集成电路中收到。我应该怎么做才能在特定IC中接收信息。如何在使用AppDelegate中的“[WCSession defaultSession] sendMessage”时在watchOS 2的特定界面控制器中接收消息

回答

2

我会建议一些重新设计,现在你有你的界面控制器做“网络”和模型的工作。

我推荐的方法是创建一个“持久性管理器”,它是WCSession委托。任何接收到的数据都会持续存在,然后使用观察者或通知模式通知代码的其他部分。如果与他们呈现的用户界面相关的任何内容已被更新(将新条目添加到表格行,新项目被收藏等),他们将继续并重新运行任何数据查询并更新他们的UI。

这具有许多优点,如降低界面控制器的复杂性,更好地分离关注点;但最重要的是它可以让你的扩展在后台运行(没有界面控制器可见),但能够接收数据,坚持下来,然后在下次启动应用程序时利用它。

1

您可以检查您发送的字典密钥。您可以使用三个不同的密钥,然后检查它是否是正确的接口控制器的正确密钥。

0

给手表应用程序扩展中的ExtensionDelegate.m中的didReceiveMessage方法。通过sendMessage方法中接口控制器的名称。在if-else条件下,使用通知中心调用预期的接口控制器中的方法。

相关问题