我試圖從導航控制器堆棧中以模態方式呈現視圖控制器,然後在解散後返回到特定的視圖控制器索引。這NavigationController
是在UITabBarController
。返回導航模式解除後的控制器索引(無故事板)
我的應用程序是用XIB和編程導航控制器和標籤欄控制器編寫的。我不使用故事板。導航控制器導航全部通過self.navigationController.pushViewController(viewController: TabOnePageTwoViewController, animated: true)
這是我的視圖控制器配置。
RootTabBarController
- >UINavigationController(rootViewController: TabOneController)
- >TabOnePageOneController
- >ModalView
的問題是,當我self.dismiss()
從模態呈現視圖中,我返回到導航控制器,而不是其中介紹了模態的視圖的根,TabOneController
我在想這樣做的正確方法是從導航控制器堆棧中選擇視圖控制器,然後從右側選擇popToViewController
。
要做到這一點,我在想,在self.dismiss()
完成塊我需要導航到我正確的視圖控制器。
let viewControllers = self.navigationController!.viewControllers
self.dismiss(animated: true, completion: {
for aViewController in viewControllers {
if(aViewController is TabOnePageTwoViewViewController){
print("navigating back to page one now")
self.navigationController!.popToViewController(aViewController, animated: true);
}
}
})
`
不幸的是,這是行不通的。據我所知,self.navigationController
不能從模態視圖內訪問。
如何解除其提供的模式後返回導航控制器索引?
我已經上傳了示例應用程序在以下網址到GitHub的:https://github.com/thexande/TabControllerAndNavigationControllerExample
如果你知道內IOS程序化的導航好,下載看一看!
謝謝大家!
幹得好先生。您的解決方案工作完美 – thexande