我有多个导航 Controller 。它们的放置方式如下:
(A)SWRevealViewController
(B)Navigation Controller(sw_front)
(C)HomeViewController (root view controller)
(D)TabBarController -->
(E)Navigation Controller 1-->
(F)TableController 1 -->
(F)TableController 2.
(E)Navigation Controller 2-->
(F)TableController 1 -->
(F)TableController 2.
我想弹出到主导航 Controller 的 Root View Controller ,即我想从 F 转到 C 或 B。我已经提到了 this回答,并将其转换为 swift 如下:
let appdel: AppDelegate = UIApplication.shared.delegate as! AppDelegate
let mainwindow : UIWindow = appdel.window!
let vcObj : HomeViewController = HomeViewController()
let navObj : UINavigationController = UINavigationController(rootViewController: vcObj)
mainwindow.rootViewController = navObj
但它只是显示一个空白的黑屏。请任何人帮忙。
我正在使用 Xcode 8 和 Swift 3。
最佳答案
不要使用 sw.pushFrontViewController(VC, animated: true)
推送您的 tabBarVC
尝试使用 navigationController
的推送方法,
self.navigationController?.pushViewController(tabBarVC!, animated: true)
然后从 TableController 调用下面的方法去 HomeViewController
,
func goToHomeNavVC(){
//parent is TabBar Controller
self.parent?.navigationController?.popToRootViewController(animated: true)
}
这是一个Demo
关于ios - 弹出到根导航 Controller - Swift 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41635602/