从tabBarController的一个item上的控制器跳转到另一个item上的控制器

先从习惯性的tabBarController开始,很多应用的外框都是用这个开始的,而从tabBarController的一个item上的控制器跳转到另一个上的,往往都是直接通过点击tabBar上的不同item来切换,

借下别人的图... 但如果要求如图从item3下的某个控制器跳转到item1上的根控制器要怎么跳呢?

可以这么看流程:

这个流程的跳转其实关乎应用开发所需要的业务流程,假如你从item3跳转到item1上的控制器后,下次点击item3时,如果需要的是显示item3的根控制器时,那可以按这个跳转。

注意,要实现这些跳转,最好就是搞一个类来保存实例化后的tabBarController,方便在整个程序里面调用

如:

先回到本item3的根控制器,不显示动画

[self.navigationController popToRootViewControllerAnimated:NO];

通过你的方法获取

UITabBarController *tabCtl

然后强制切换tabBarController的选中的item为item1就可以了

tabCtl.selectedIndex = 0;

假如item3不需要回到根控制器,那么只需要调用

tabCtl.selectedIndex就可以了,但要确保有获取到UITabBarController

如果是跳转到item1的第二个控制器,可以这样,如果该控制器未实例化,也需要实例化,否则跳转不了
1 UINavigationController *nav = (UINavigationController *)tabCtl.viewControllers[0];
2 ProjectViewController *proCtl = [[ProjectViewController alloc]init];
3 [nav pushViewController:proCtl animated:YES];

应用里如果用了防止tabBar双点击的代理方法时,记得调用该代理方法

原文地址:https://www.cnblogs.com/fcug/p/5626619.html