我正在实现从 Apple Watch 应用程序到 iPhone 上目标应用程序的切换。
在其中一个 WatchKit 扩展视图控制器上,我有以下代码:
myActivity = [[NSUserActivity alloc]
initWithActivityType: @"com.newsApp.shownews"];
myActivity.userInfo = @{@"newsID":[self.newsID objectAtIndex:0]};
myActivity.title = @"shownews";
myActivity.delegate = self;
[myActivity becomeCurrent];
continueUserActivity
然后我在我的目标 iphone 应用程序的 appDelegate 中添加以下代码:
-(BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray *))restorationHandler
{
if ([userActivity.activityType isEqual: @"com.newsApp.shownews"]) {
UIStoryboard *mainStoryboard = self.window.rootViewController.storyboard;
ShownewsViewController *detailViewController = (ShownewsViewController *)[mainStoryboard instantiateViewControllerWithIdentifier:@"ShownewsViewController"];
detailViewController.post_ID = [userActivity.userInfo objectForKey:@"newsID"];
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:detailViewController];
[self.window.rootViewController presentViewController:navigationController animated:YES completion:NULL];
}
return YES;
}
问题是它userActivity.userInfo
是空的,但userActivity.activityType
正确设置为com.newsApp.shownews
.