我有一个可以浏览子屏幕的标签栏。
选择标签项时,重新启动标签栏项目(第一个屏幕)。
因此,基本上当您选择第一个标签栏(见上图)并从tableview中选择一些内容时,您将被定向到集合视图(黑屏)。当您选择第二个标签栏项目并返回标签栏中的第一个项目时,它会从停止的位置继续(黑色屏幕)。
如何重新开始?
我尝试过使用它,
- (void) viewDidLoad{
[self.tabBarController addObserver:self forKeyPath:@"selectedViewController" options:NSKeyValueObservingOptionNew context:@"changedTabbarIndex"]; }
- (void) observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void
*)context{
[self viewDidAppear:YES]; }
但是只会在第二次点击时重新加载屏幕。
答案 0 :(得分:3)
从我在你的图片中看到的你有UINavigationController
作为每个标签栏项目的根视图控制器,所以你可以做的是在你的UITabBarController中实现以下方法:
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
if (tabBarController.selectedIndex == YOUR_TAB_INDEX) {
//YOUR_TAB_INDEX is the index of the tab bar item for which you want to show the rootView controller
UINavigationController *navController = (UINavigationController*)viewController;
[navController popToRootViewControllerAnimated:YES]
}
}
这将删除添加到UINavigationController
的所有视图控制器,{{1}}是标签栏项目的根视图控制器