2

当您将 aUINavigationController集成到 a 的其中一个选项卡中时UITabBarController,会UITabBarController记住用户上次使用该选项卡时所在的位置。是否可以让 UITabBarController 忘记并始终像第一次一样启动选项卡?

fe结构如下

  • 选项卡1
    • 视图1
    • 视图2
  • 选项卡2
    • 视图1

用户从 Tab1/View1 开始,然后导航到 Tab1/View2。他切换到 Tab2/View1,然后按下 Tab1:

  • 当前行为:他出现在 Tab1/View2
  • 通缉行为:他出现在 Tab1/View1
4

2 回答 2

3

像下面这样尝试它会帮助你

 - (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
    for(int i = 0; i < tabBarController.viewControllers.count; i++) {
        if(tabBarController.selectedIndex != i && [[tabBarController.viewControllers objectAtIndex:i] isKindOfClass:[UINavigationController class]])
            [[tabBarController.viewControllers objectAtIndex:i] popToRootViewControllerAnimated:NO];
    }
}
于 2013-01-31T09:45:27.070 回答
1

看看UITabBar 委托协议

然后使用tabBarController:didSelectViewController:这种方式:

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

    if (viewController != tabBarItem1) {
        [self.navigationControllerInTab1 popToRootViewControllerAnimated:NO];
    }
}

这样,当您离开第一个选项卡项目时,它会弹出NavigationControllerrootViewController.

于 2013-01-31T09:44:55.237 回答