3

我需要一些关于我的 Tabbar 应用程序的帮助。

目前我的标签栏如下所示:

  • 标签栏控制器
    • 选项卡1
      • 导航控制器
        • 视图控制器1
        • 视图控制器2
    • 选项卡2
      • 视图控制器3

假设 ViewController2 是当前显示的 ViewController。现在我切换到 ViewController3 并希望以编程方式切换到 ViewController1。

问题是,因为 Tab1 中的活动 ViewController 是 ViewController2

[self.tabBarController setSelectedIndex:0];

将始终切换到 ViewController2。但是在那种情况下我怎么能切换到 ViewController1 呢?

这对我也不起作用:

self.tabBarController.selectedViewController
= [self.tabBarController.viewControllers objectAtIndex:0];

会很高兴得到一些提示。

4

4 回答 4

3

您必须从导航控制器中弹出 viewController2。做就是了

[self.tabBarController setSelectedIndex:0];
[(UINavigationController*)[self.tabBarController.viewControllers objectAtIndex:0] popViewControllerAnimated:NO];
于 2012-10-09T13:07:21.460 回答
3

设置好selectedIndexin 代码后,就可以弹回导航栈的根视图控制器:

self.tabBarController.selectedIndex = 0;
UINavigationController *navController = self.tabBarController.selectedViewController;
[navController popToRootViewControllerAnimated:NO];
于 2012-10-09T13:07:39.657 回答
2

使用类似的东西

UINavigationController *navController=(UINavigationController*)[self.tabBarController.viewControllers objectAtIndex:0];
[navController popToRootViewControllerAnimated:YES];

希望这可以帮助

于 2012-10-09T13:07:47.770 回答
0

斯威夫特 3 版本

 self.tabBarController?.selectedIndex = 0
 let navController = self.tabBarController?.selectedViewController as! UINavigationController
 navController.popToRootViewController(animated: true)
于 2017-05-17T11:33:24.590 回答