2012-10-09 63 views
3

我需要一些关于我的Tabbar应用程序的帮助。iOS Tabbar - 更改为第一个选项卡和第一个ViewController

目前我的TabBar如下所示:

  • TabbarController
    • TAB1
      • NavigationController
        • ViewController1
        • ViewController2
    • TAB2
      • ViewController3

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

的问题是,由于在TAB1活性的ViewController是ViewController2

[self.tabBarController setSelectedIndex:0]; 

将随时切换到ViewController2。 但是如何在这种情况下切换到ViewController1?

这也不会为我工作了:

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

会很高兴来回一些提示。

回答

3

你必须从你的导航控制器弹出viewController2。只要做到

[self.tabBarController setSelectedIndex:0]; 
[(UINavigationController*)[self.tabBarController.viewControllers objectAtIndex:0] popViewControllerAnimated:NO]; 
3

设置在代码中selectedIndex后,你就可以弹出回导航堆栈的根视图控制器:

self.tabBarController.selectedIndex = 0; 
UINavigationController *navController = self.tabBarController.selectedViewController; 
[navController popToRootViewControllerAnimated:NO]; 
2

使用类似

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

希望这帮助

0

Swift 3版本

self.tabBarController?.selectedIndex = 0 
let navController = self.tabBarController?.selectedViewController as! UINavigationController 
navController.popToRootViewController(animated: true) 
相关问题