Iphone 在选项卡栏应用程序中重置以前的导航控制器

Iphone 在选项卡栏应用程序中重置以前的导航控制器,iphone,viewcontroller,navigationcontroller,tabbarcontroller,Iphone,Viewcontroller,Navigationcontroller,Tabbarcontroller,我有一个带有导航控制器和视图控制器的选项卡栏应用程序。这就是它的布局 Tab Bar 1 - Navigation Controller -- Root View Controller -- Other view controller Tab Bar 2 - Navigation Controller -- Root View Controller 我要做的是,当我导航到选项卡栏1中的另一个视图控制器时,然后切换到选项卡栏2,我希望选项卡栏1返回到其根视图控制器 我正在寻找的行为类似于iPo

我有一个带有导航控制器和视图控制器的选项卡栏应用程序。这就是它的布局

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

Tab Bar 2
- Navigation Controller
-- Root View Controller
我要做的是,当我导航到选项卡栏1中的另一个视图控制器时,然后切换到选项卡栏2,我希望选项卡栏1返回到其根视图控制器


我正在寻找的行为类似于iPod应用程序。感谢您的帮助。谢谢

听起来您是从“选项卡栏应用程序”模板开始的,因此您的应用程序代理很可能也是UITabBarController的代理。UITabBarControllerDelegate具有以下方法:

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

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

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