我试图从导航控制器堆栈中以模态方式呈现视图控制器,然后在解散后返回到特定的视图控制器索引。这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