我正在使用 storyboard ,我想在用户收到远程推送通知时始终打开相同的 View ,即使应用程序在后台或已打开。我需要呈现的 View 是 Storyboard中设置的初始 View Controller 之后的四个 View 。我读了这篇文章:
How can I show a modal view in response to a notification as a new window? (no parent vc)
Open a specific tab/view when user receives a push notification
这是我的代码:
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
UINavigationController *navController = (UINavigationController *)self.window.rootViewController;
notificacionViewController *menu = [navController.storyboard instantiateViewControllerWithIdentifier:@"notificacion"];
// First item in array is bottom of stack, last item is top.
navController.viewControllers = [NSArray arrayWithObjects:menu,nil];
[self.window makeKeyAndVisible];
}
但是当我收到通知时,应用程序崩溃并出现此错误:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[locationViewController setViewControllers:]: unrecognized selector sent to instance 0x42ccd0'
locationViewController 是 Storyboard中设置为初始的 View Controller 。
非常感谢。
最佳答案
请尝试以下代码:
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
UINavigationController *navController = (UINavigationController *)self.window.rootViewController;
NotificationViewController *notificationViewController = [[NotificationViewController alloc] init];
[navController.visibleViewController.navigationController pushViewController:notificationViewController];
}
关于objective-c - 接收远程推送通知时打开 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13416745/