我在互联网上搜索了堆栈溢出,但仍然无法解决这个问题。
它是一个选项卡式应用程序模板。
当应用程序未运行并收到推送通知时,我想从中读取 launchOptions 的内容
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
我通过解析 JSON 数据等...
然后我想在故事板上的单独视图上显示它。
我读过一些帖子要做:
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
DetailViewController *ivc = [storyboard instantiateViewControllerWithIdentifier:@"Detail"];
[(UINavigationController*)self.window.rootViewController pushViewController:ivc animated:NO];
但这给了我
*由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[UITabBarController pushViewController:animated:]:无法识别的选择器发送到实例 0x1c5a0c20”
当应用程序在后台运行并接收来自的推送时
- (void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)notification
我打电话[[NSNotificationCenter defaultCenter] postNotificationName:@"receivedPushNotification" object:self];
它告诉当前正在显示的任何视图
detail = [self.storyboard instantiateViewControllerWithIdentifier:@"Detail"];
[self.navigationController pushViewController:detail animated:YES];
效果很好。
问题是应用程序首次启动时没有加载这些视图,因此我需要一种方法将详细视图控制器从 appDelegate 放在用户屏幕上。
谢谢