use*_*896 6 session ios apple-watch watchos-2
我正在开发带有手表扩展程序(watchOS 2)的 iPhone 应用程序(iOS 9 测试版),并将数据从手表传递到手机,我正在使用 WCSession。
我有 2 个不同的视图控制器使用 WCSessions,因此对于每个控制器,我正在实例化新的 WCSession 对象。对于第一个视图控制器它工作正常,但是当我想在第二个视图控制器中接收消息时,仍然很少有初始消息被发送到第一个控制器。
在转到第二个控制器之前,有什么方法可以停用/禁用第一个视图控制器的会话?或者还有其他我应该考虑的选择吗?
谢谢!
Phi*_*lip -4
当您来回传递数据时,您正在发送字典。如果您指定了好的键,您可以获得每个 ViewController 的适当数据。
例子:
视图控制器1:
[session updateApplicationContext:@{@"viewController1": @"item1"} error:&error];
Run Code Online (Sandbox Code Playgroud)
视图控制器2:
[session updateApplicationContext:@{@"viewController2": @"item2"} error:&error];
Run Code Online (Sandbox Code Playgroud)
当您接收数据时:
- (void) session:(nonnull WCSession *)session didReceiveApplicationContext:(nonnull NSDictionary<NSString *,id> *)applicationContext {
if ([applicationContext objectForKey:@"viewController1"]) {
//ViewController1 data
} else if ([applicationContext objectForKey:@"viewController2"]) {
//ViewController2 data
}
}
Run Code Online (Sandbox Code Playgroud)
查看此处的答案,了解有关 WC在 watchOS2 中使用 WatchConnectivity 在 iOS 和 WatchOS 之间发送消息的更多信息
| 归档时间: |
|
| 查看次数: |
1309 次 |
| 最近记录: |