2010-05-15 77 views
6

情况:
我有一个基于“基于导航的应用程序”模板的Xcode项目。所以这意味着我有一个管理UIViewController的单一UINavigationController。如何在导航控制器之间切换?

我想做的事:
我想要做的就是增加一个UINavigationController的我的项目 - 并且能够在它们之间来回切换。 (我想这样做是为了使一些独立无关的内容空间,使得它不具有指向回到根视图控制器后退按钮。)

问:
如何添加一个UINavigationController到我的项目,并在两个UINavigationControllers之间切换?

+0

为什么不隐藏后退按钮? – drawnonward 2010-05-15 04:09:34

+0

你在两个区域之间如何变化?一个UITabBarController? – Rudiger 2010-05-15 05:21:39

回答

9

最常见和自然的iPhone操作系统,这样做的方法是将UITabBarController添加到您的应用程序。 Xcode模板标签栏应用程序将指导您如何使用它的正确方向。

但是......

如果你不希望有一个标签栏在您的应用程序,并希望不同UINavigationController实例(或任何为此事UIViewController)之间进行切换,你可以做这样的事情。

首先,您需要在合适的位置创建UINavigationController实例(例如,新的视图控制器,或者在您的应用程序委托中,如果您想轻松解决问题)。您可以通过交换应显示的导航控制器视图来切换控制器。

实施例中应用程序委托,“firstNavigationController”和“secondNavigationController”是UINavigationController实例变量:

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

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

+0

感谢 - 并获得额外奖励:我如何使转换顺利(或动画)? – RexOnRoids 2010-05-15 15:18:33

+0

你可以使用一些基本的'UIView'动画来完成这个操作。在我的方法的第一行之前,添加:'[UIView beginAnimations:@“myFlip”context:NULL];''和'[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.view cache:YES];'在底部:'[ UIView commitAnimations];' – alleus 2010-05-16 09:37:37

+0

如何在swift中做到这一点? – DeyaEldeen 2016-08-21 10:00:01

相关问题