2012-12-02 52 views
0

我有3個選項卡具有它們的內導航控制器的標籤控制器:iPhone應用編程 - 導航到其他視圖控制器和避開導航控制器

// account view 
UINavigationController * firstNavController = [[UINavigationController alloc]initWithRootViewController: viewController1]; 
viewController2.tabBarItem = [[UITabBarItem alloc]initWithTabBarSystemItem:UITabBarSystemItemFavorites tag:2]; 

// book view 
UINavigationController * secondNavController = [[UINavigationController alloc]initWithRootViewController: viewController2]; 
viewController3.tabBarItem = [[UITabBarItem alloc]initWithTabBarSystemItem:UITabBarSystemItemFavorites tag:3]; 

// invite view 
UINavigationController * thirdNavController = [[UINavigationController alloc]initWithRootViewController: viewController3]; 


CATransition *transition = [CATransition animation]; 
transition.duration = 0.7f; 
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; 
transition.type = kCATransitionFade; 

[firstNavController.view.layer addAnimation: transition forKey:nil]; 
[secondNavController.view.layer addAnimation: transition forKey:nil]; 
[thirdNavController.view.layer addAnimation: transition forKey:nil]; 

_tabBarController.viewControllers = [[NSArray alloc] initWithObjects: firstNavController, secondNavController, thirdNavController, nil]; 

我有一個右按鈕,讓導航欄人們轉到我的帳戶頁面。我怎樣才能不使用導航控制器?例如,如果用戶點擊標籤欄按鈕1,他們會得到一個導航控制器(帶有他們可以選擇的服務列表)。如果他們點擊右上角的我的帳戶按鈕,它應該打開一個新的導航控制器,底部的標籤欄使他們無法點擊我的帳戶頁面上的返回按鈕(因爲這是新導航中的根控制器控制器

我怎樣才能做到這一點

基本上,我想打開一個新的視圖控制器(控制器1 - 我的帳戶)。?不推新視圖控制器進入導航從另一個視圖控制器(控制器2)控制器1的控制器應該在底部有標籤欄但沒有後退按鈕

+0

你想讓你的帳戶控制器是在一個導航控制器,但沒有導航欄,或者你不希望它在導航控制器呢? – rdelmar

+0

我希望它在自己的導航控制器中,底部的標籤欄。 –

+0

但是頂部沒有導航欄,對吧? – rdelmar

回答

0

而不是推你LoginViewController隱藏在你的第一個控制器的viewDidAppear方法中的導航欄,請嘗試使用presentModalViewController

在您的導航rightBarButton行動給

[self presentModalViewController:loginViewController animated:YES]; 
1

從控制器2,您可以使用它切換到第一個控制器(I assum Ë你的意思是在第一個選項卡控制器):

self.tabBarController.selectedIndex = 0; 

我想你可以通過使用self.navigationBarHidden = YES