我有一台有四个标签的tabBarController。从每个选项卡中,我可以浏览一系列视图控制器。在最后一个视图控制器,我有一个‘完成’按钮,点击它我必须被重定向到我的初始tabBarController。我目前使用的代码如下(单击按钮时)。
let storyboard = UIStoryboard.init(name: "Main", bundle: Bundle.main)
if let tabViewController = storyboard.instantiateViewController(withIdentifier: "TabBarController") as? UITabBarController {
self.navigationController!.pushViewController(tabViewController, animated: false)
}
但我觉得这是不正确的方式,因为导航堆栈不断增加。相反,我想要清除导航堆栈,并显示堆栈中的第一个tabBarController。我该如何解决这个问题呢?
发布于 2018-05-28 17:55:23
将您的第一个viewController设置为根视图控制器,然后单击按钮
self.navigationController?.popToRootViewController(animated: true)
发布于 2018-05-28 17:59:38
我认为设置根控制器可以解决你的问题。
if let window = UIApplication.shared.keyWindow {
let tabVC = UINavigationController(rootViewController: tabViewController())
window.rootViewController = tabVC
}
发布于 2018-05-28 18:41:17
使用可用的方法>>
func popToRootViewController(动画: Bool) -> UIViewController
此方法将清除堆栈,并将您置于根视图控制器。请阅读文档以了解详细信息
。
https://stackoverflow.com/questions/50563568
复制相似问题