2012-02-08 41 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]; 
} 
} 
相关问题