iOS UINavigationController根据条件切换rootviewcontroller

时间:2014-01-27 16:42:00

标签: ios storyboard navigationcontroller

我正在使用故事板编写iOS应用程序。

我创建了ViewControllerAViewControllerB,然后在故事板上的ViewControllerA中嵌入了UINavigationController

该应用首次启动时会显示ViewControllerA,否则会显示ViewControllerB

我成功添加了启动历史记录检查代码。我将在UINavigationController方法中将rootViewController设置为窗口didFinishLaunchingWithOptions

问题在于我无法从故事板中获取UINavigationController,因此我无法根据条件推送ViewControllerAViewControllerB

1 个答案:

答案 0 :(得分:0)

如果您正在使用故事板,那么UINavigationController应该被设置为初始视图控制器,它将被自动加载和显示。现在,当ViewControllerA中发生某些事情时,它可以通过使用:

推送ViewControllerB
ViewControllerB *b = ...;
[self.navigationController pushViewController:b animated:YES];

为了增强篡改,app委托有一个window属性。从这里你可以得到rootViewController。将其转换为UINavigationController,您可以修改/推送。将其设置为其他内容,您可以一起替换UINavigationController