1

我有一个标签栏应用程序,显示几个选项卡。我通知的情况下,我希望用户被引导到一个视图控制器与能力推“后退”。 当我的应用程序只是导航控制器的应用程序,我用这个代码在我的AppDelegate:从TabBar应用程序的AppDelegate Push ViewController应用程序

UIStoryboard *mainStoryboard = self.window.rootViewController.storyboard; 
DetailViewController *detailViewController = (DetailViewController*)[mainStoryboard instantiateViewControllerWithIdentifier: @"detailViewController"]; 
[(UINavigationController*)self.window.rootViewController pushViewController:detailViewController animated:NO]; 

该代码使用,直到我将我的应用程序是标签栏,做工精细。看起来像“self.window.rootViewController”不再是“UINavigationController”类型,因此调用“pushViewController”会生成一个异常,表示方法不存在。 任何方式使这项工作在选项卡栏应用程序?

感谢

+0

你想让这个新的viewcontroller覆盖标签栏吗?你想要后退按钮做什么? – Joel 2013-02-08 23:46:25

+0

是的。这是一个新闻应用程序。如果用户滑动通知,我想打开一个视图控制器直接显示新闻项目。然后按回我希望他回到常规选项卡视图。 – bashan 2013-02-09 14:53:41

回答

2

你应该出示您的通知控制器模式(presentViewController:animated:completion:),以及控制器内您提供了一种方法来关闭它,可能是一个按钮顶栏。

编辑: 感谢Dimitry的回答我能够走上正确的轨道。我只是为了保存顶部导航栏和底部工具栏而做了一个小窍门。我通过使用“UINavigationController”实例来完成它。代码如下:

UIStoryboard *mainStoryboard = self.window.rootViewController.storyboard; 
DetailViewController *detailViewController = (DetailViewController*)[mainStoryboard instantiateViewControllerWithIdentifier: @"detailViewController"]; 
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:detailViewController]; 
navigationController.navigationBar.tintColor = [UIColor blackColor]; 
navigationController.toolbar.tintColor = [UIColor blackColor]; 
[self.window.rootViewController presentViewController:navigationController animated:YES completion:NULL]; 
相关问题