我需要一些关于Tabbar应用程序的帮助。
目前我的Tabbar如下所示:
假设ViewController2是当前显示的ViewController。现在我切换到ViewController3并希望以编程方式切换到ViewController1。
问题是,因为Tab1中的活动ViewController是ViewController2
[self.tabBarController setSelectedIndex:0];
将始终切换到ViewController2。 但是在这种情况下如何切换到ViewController1?
这对我来说也不合适:
self.tabBarController.selectedViewController
= [self.tabBarController.viewControllers objectAtIndex:0];
一些提示会很高兴。
答案 0 :(得分:3)
您必须从导航控制器弹出viewController2。只是做
[self.tabBarController setSelectedIndex:0];
[(UINavigationController*)[self.tabBarController.viewControllers objectAtIndex:0] popViewControllerAnimated:NO];
答案 1 :(得分:3)
在代码中设置selectedIndex
后,您可以弹回导航堆栈的根视图控制器:
self.tabBarController.selectedIndex = 0;
UINavigationController *navController = self.tabBarController.selectedViewController;
[navController popToRootViewControllerAnimated:NO];
答案 2 :(得分:2)
使用类似
的内容UINavigationController *navController=(UINavigationController*)[self.tabBarController.viewControllers objectAtIndex:0];
[navController popToRootViewControllerAnimated:YES];
希望这有帮助
答案 3 :(得分:0)
Swift 3版
self.tabBarController?.selectedIndex = 0
let navController = self.tabBarController?.selectedViewController as! UINavigationController
navController.popToRootViewController(animated: true)