清除视图控制器的导航堆栈

Kus*_*tha 3 tabbarcontroller ios swift

我有一个带有四个选项卡的 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)
}
Run Code Online (Sandbox Code Playgroud)

但我觉得这不是正确的方法,因为导航堆栈不断添加。相反,我想清除导航堆栈并显示堆栈中的第一个 tabBarController。我该如何解决这个问题?

小智 6

将您的第一个 viewController 设为根视图控制器,然后单击按钮

self.navigationController?.popToRootViewController(animated: true)
Run Code Online (Sandbox Code Playgroud)