重置标签栏应用程序中的上一个导航控制

时间:2010-11-26 22:35:32

标签: iphone viewcontroller navigationcontroller tabbarcontroller

我有一个标签栏应用程序,里面有导航控制器和视图控制器。这就是它的布局。

Tab Bar 1
- Navigation Controller
-- Root View Controller
-- Other view controller

Tab Bar 2
- Navigation Controller
-- Root View Controller

我想要做的是当我导航到Tab Bar 1中的Other视图控制器,然后切换到Tab Bar 2,我希望Tab Bar 1返回其Root View Controller。

我正在寻找的行为类似于iPod App。任何帮助表示赞赏。谢谢!

1 个答案:

答案 0 :(得分:1)

听起来您已经开始使用“标签栏应用程序”模板,因此很可能您的应用程序委托也是UITabBarController的委托。 UITabBarControllerDelegate有这个方法:

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController

在此方法中,您将检查'viewController'是否是您的第一个导航控制器,如果是,请将导航控制器viewControllers属性设置为子视图控制器的数组,其中根视图控制器位于索引0处。

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
    if (viewController == firstNavController)
        viewController.viewControllers = [NSArray arrayWithObjects:rootViewController, otherViewController, nil];
}
相关问题