如何在导航控制器之间切换?

时间:2010-05-15 03:52:20

标签: iphone xcode uikit uinavigationcontroller

情况:
我有一个基于“基于导航的应用程序”模板的Xcode项目。这意味着我有一个管理UIViewController的SINGLE UINavigationController。

我想做什么:
我想要做的是在我的项目中再添加一个UINavigationController - 并且能够在它们之间来回切换。 (我想这样做是为了为一些单独的无关内容腾出空间,以便它没有一个指向根视图控制器的后退按钮。)

问题:
如何在项目中添加一个UINavigationController并在两个UINavigationControllers之间切换?

1 个答案:

答案 0 :(得分:9)

最常见,最自然的iPhone OS,这样做的方法是在应用程序中添加UITabBarController。 Xcode模板标签栏应用程序将指导您如何使用它。

但是...

如果您不希望应用程序中有标签栏,并希望在不同的UINavigationController实例(或任何UIViewController)之间切换,您可以执行类似的操作。

首先,您需要在适当的位置创建UINavigationController实例(例如,新的视图控制器,或者在应用程序代理中,如果您想要轻松实现)。然后,您可以通过交换哪个导航控制器应该可见的视图来切换控制器。

Application Delegate中的示例,“firstNavigationController”和“secondNavigationController”是UINavigationController个实例变量:

- (void)showFirstNavigationController {
    [secondNavigationController.view removeFromSuperview];
    [self.window addSubview:firstNavigationController.view];
}

这将只显示第一个而不是第二个导航控制器。请注意,此示例非常简单。我没有考虑到你应该正确处理方法viewWillAppear:viewDidAppear:等等。