1

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

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

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

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

4

1 回答 1

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

于 2013-04-30T11:39:39.427 回答