我有一个显示多个标签的标签栏应用程序。我是通知的情况我希望用户被定向到能够推“返回”的视图控制器。 当我的应用程序只是导航控制器应用程序时,我在AppDelegate中使用了这段代码:
UIStoryboard *mainStoryboard = self.window.rootViewController.storyboard;
DetailViewController *detailViewController = (DetailViewController*)[mainStoryboard instantiateViewControllerWithIdentifier: @"detailViewController"];
[(UINavigationController*)self.window.rootViewController pushViewController:detailViewController animated:NO];
此代码过去一直运行正常,直到我将我的应用转换为Tab Bar。似乎“self.window.rootViewController”不再是“UINavigationController”类型,因此调用“pushViewController”会生成一个异常,说方法不存在。 有什么方法可以在Tab Bar应用程序上工作吗?
由于
答案 0 :(得分: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];