6

我正在开发一个带有手表扩展(watchOS 2)的 iPhone 应用程序(iOS 9 beta),并将数据从手表传递到手机,我正在使用 WCSession。

我有 2 个使用 WCSessions 的不同视图控制器,因此对于每个控制器,我都在实例化新的 WCSession 对象。对于第一个视图控制器,它工作正常,但是当我想在第二个视图控制器中接收消息时,仍然很少有初始消息被发送到第一个控制器。

有什么方法可以在转到第二个控制器之前停用/禁用第一个视图控制器的会话?或者我还有其他选择吗?

谢谢!

4

1 回答 1

-4

当您来回传递数据时,您正在发送字典。如果您指定好的键,您可以获得每个 ViewController 的适当数据。

例子:

视图控制器1:

[session updateApplicationContext:@{@"viewController1": @"item1"} error:&error];

视图控制器2:

[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在 watchOS2 中使用 WatchConnectivity 在 iOS 和 WatchOS 之间发送消息的更多信息

于 2015-07-20T11:10:07.140 回答