如果将UINavigationController
集成到UITabBarController
的其中一个标签中,则UITabBarController
会记住用户上次使用该标签的位置。是否有可能让UITabBarController忘记并始终启动选项卡,就像它是第一次一样?
f.e。 结构如下
用户从Tab1 / View1开始,然后导航到Tab1 / View2。他更改为Tab2 / View1,然后按Tab1:
答案 0 :(得分: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];
}
}
答案 1 :(得分:1)
查看UITabBar delegate protocole。
然后以这种方式使用tabBarController:didSelectViewController:
:
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
if (viewController != tabBarItem1) {
[self.navigationControllerInTab1 popToRootViewControllerAnimated:NO];
}
}
这样,当您离开第一个标签项时,它会将NavigationController
弹出到rootViewController
。