2

我有一个tabbar应用程序。回到导航控制器的TabBar应用程序的第一个视图

标签栏中只有2个选项卡。第一个选项卡是NavigationController,在NavigationController有两个视图 - 根和详细视图,第二个是TableViewController。第二个作品完美,但第一个没有。

我从第一个视图开始(NavigationController)。然后进入这个NavigationView到详细视图。然后,例如,我转到第二个标签栏视图。然后回到第一个,但我没有看到根视图,但详细视图。

我怎样才能每次打开根视图?

回答

8

使用UITabBarController delegate方法tabBarController:didSelectViewController:这样的:

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController { 
    if (viewController != tabBarItemForNavControllerTab) { 
    [self.navControllerInFirstTab popToRootViewControllerAnimated:NO]; 
    } 
} 

另外,还要确保代表是正确安装,创建UITabBarController,你从我的片断修改代码以适应您的控制器名称时。

+0

我应该在哪个类中放置此代码? – 2012-02-26 17:58:09

+0

@EugeneTrapeznikov在UITabBarControllers父控制器中。如果您不确定如何委派工作,请阅读本文[**文章**](http://thinkvitamin.com/code/ios/ios-design-patterns-delegation-part-2/)。 – dom 2012-02-26 18:15:23

+0

我可以通过编程设置委托吗?是self.tabBarController.delegate = self;好吗? – 2012-02-26 18:23:51

相关问题