2012-02-08 83 views
0

我有一個uitabbarcontroller它有3個項目。每個項目都有自己的導航控制器。 例如在選項卡1中,用戶導航到其他子視圖,然後更改爲選項卡2,然後返回選項卡1.選項卡1顯示子視圖。我怎麼能推動根視圖控制器而不是子視圖? 我的UITabBarController是定製的,具有:iOS 5選項卡視圖更改推按根控制器(故事板)

-(void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item 

是它做某種pushrootviewcontroller的正確的地方? 如何獲得控制器?

編輯:

我有以下實施

UITabBarController<UITabBarControllerDelegate, UITabBarDelegate> 

-(void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController 
    { 
     if (tabBarController.selectedIndex == 0) 
     { 
      NSLog(@"test%@",@"test"); 
[self.tabBarController.selectedViewController.navigationController popToRootViewControllerAnimated:NO]; 
     } 
     } 

的NSLog輸出可以在調試器,但popto根本不工作中可以看出。任何想法?

+0

所以你的意思是,你要第一個標籤從標籤1彈回其初始認爲,一旦用戶切換到選項卡,並返回到標籤1? – Canopus 2012-02-08 17:52:34

+0

是的,這正是我想要的。 – 2012-02-08 17:54:29

+0

一種方法可以在 - (void)viewDidDisappear – Canopus 2012-02-08 17:59:30

回答

1

確定代碼應該看起來像這樣。現在它按照我想要的方式工作。

-(void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController 
{ 
if (tabBarController.selectedIndex == 0) 
{ 
    if ([viewController isKindOfClass:[UINavigationController class]]) 
     [(UINavigationController*)viewController popToRootViewControllerAnimated:NO]; 
} 
} 
相關問題