先從習慣性的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雙點擊的代理方法時,記得調用該代理方法