从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双点击的代理方法时,记得调用该代理方法

 


借下别人的图... 但如果要求如图从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双点击的代理方法时,记得调用该代理方法

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值