选中后iOS刷新标签栏项目

时间:2013-04-30 11:07:03

标签: ios uitabbarcontroller uitabbar uitabbaritem

我有一个可以浏览子屏幕的标签栏。

选择标签项时,重新启动标签栏项目(第一个屏幕)。

Tab bar picture 因此,基本上当您选择第一个标签栏(见上图)并从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]; }

但是只会在第二次点击时重新加载屏幕。

1 个答案:

答案 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}}是标签栏项目的根视图控制器