【发布时间】:2013-02-04 23:10:23
【问题描述】:
我在网上搜索了堆栈溢出,仍然无法解决这个问题。
它是一个选项卡式应用程序模板。
当应用未运行并收到推送通知时,我想从中读取 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 放在用户屏幕上。
谢谢
【问题讨论】:
标签: storyboard pushviewcontroller appdelegate tabbed