2010-05-15 79 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

相關問題