如何清除导航堆栈的viewcontroller?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (58)

我有一个带有四个选项卡的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。我该如何解决这个问题?

提问于
用户回答回答于

设置根控制器:

if let window = UIApplication.shared.keyWindow {
   let tabVC = UINavigationController(rootViewController: tabViewController())
   window.rootViewController = tabVC
}
用户回答回答于

如下:

self.navigationController?.popToRootViewController(animated: true)

所属标签

可能回答问题的人

  • 人生的旅途

    10 粉丝484 提问6 回答
  • 无聊至极

    4 粉丝504 提问6 回答
  • 富有想象力的人

    4 粉丝0 提问4 回答
  • 找虫虫

    2 粉丝0 提问4 回答

扫码关注云+社区

领取腾讯云代金券