我正在开发带有手表扩展(watchOS 2)的iPhone应用程序(iOS 9 beta),并将数据从手表传递到手机我正在使用WCSession。
我有2个不同的视图控制器使用WCSessions,因此对于每个控制器,我实例化新的WCSession对象。对于第一个视图控制器,它工作正常,但是当我想在第二个视图控制器中接收消息时,很少有初始消息仍然被发送到第一个控制器。
在进入第二个控制器之前,有什么方法可以停用/禁用第一个视图控制器的会话?或者我还有其他选择吗?
谢谢!
答案 0 :(得分:1)
当您来回传递数据时,您正在发送词典。如果指定好的键,则可以为每个ViewController获取适当的数据。
示例:
ViewController1:
[session updateApplicationContext:@{@"viewController1": @"item1"} error:&error];
ViewController2:
[session updateApplicationContext:@{@"viewController2": @"item2"} error:&error];
当您收到数据时:
- (void) session:(nonnull WCSession *)session didReceiveApplicationContext:(nonnull NSDictionary<NSString *,id> *)applicationContext {
if ([applicationContext objectForKey:@"viewController1"]) {
//ViewController1 data
} else if ([applicationContext objectForKey:@"viewController2"]) {
//ViewController2 data
}
}
请在此处查看答案,详细了解WC Send messages between iOS and WatchOS with WatchConnectivity in watchOS2