方法一:根視圖必須是 UITabBarController
/**
導航跳轉(zhuǎn)(前提:上級之前的視圖控制器對象均采用導航跳轉(zhuǎn),且根視圖是 UITabBarController)
- parameter viewCtrl: 要跳轉(zhuǎn)到的控制器對象
*/
func PushToViewCtrl(viewCtrl:UIViewController){
//獲取 tabbar 控制器
let tabbarCtrl = UIApplication.sharedApplication().keyWindow?.rootViewController as? UITabBarController
//獲取當導航控制器
let navCtrl = tabbarCtrl?.selectedViewController as? UINavigationController
navCtrl?.pushViewController(viewCtrl, animated: true)
}
PushToViewCtrl(viewCtrl)
方法二:發(fā)生過模態(tài)跳轉(zhuǎn)
/**
發(fā)生在模態(tài)跳轉(zhuǎn)后的導航跳轉(zhuǎn)(上級之前的視圖控制器對象有發(fā)生模態(tài)跳轉(zhuǎn))
- parameter viewCtrl: 要跳轉(zhuǎn)到的控制器對象
*/
func PushToViewCtrlAfterPresent(viewCtrl:UIViewController) {
//獲取根視圖控制器
let rootCtrl = UIApplication.sharedApplication().keyWindow?.rootViewController
//獲取當導航控制器
let navCtrl = rootCtrl?.presentedViewController as? UINavigationController
navCtrl?.pushViewController(viewCtrl, animated: true)
}
PushToViewCtrlAfterPresent(viewCtrl)
注:這個兩個方法建議寫成全局方法,方便使用
期待你的評論建議O(∩_∩)O~