首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >清除视图控制器的导航堆栈

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

Stack Overflow用户
提问于 2018-05-28 17:51:24
回答 3查看 5.3K关注 0票数 3

我有一台有四个标签的tabBarController。从每个选项卡中,我可以浏览一系列视图控制器。在最后一个视图控制器,我有一个‘完成’按钮,点击它我必须被重定向到我的初始tabBarController。我目前使用的代码如下(单击按钮时)。

代码语言:javascript
复制
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。我该如何解决这个问题呢?

EN

回答 3

Stack Overflow用户

发布于 2018-05-28 17:55:23

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

代码语言:javascript
复制
self.navigationController?.popToRootViewController(animated: true)
票数 4
EN

Stack Overflow用户

发布于 2018-05-28 17:59:38

我认为设置根控制器可以解决你的问题。

代码语言:javascript
复制
if let window = UIApplication.shared.keyWindow {
   let tabVC = UINavigationController(rootViewController: tabViewController())
   window.rootViewController = tabVC
}
票数 2
EN

Stack Overflow用户

发布于 2018-05-28 18:41:17

使用可用的方法>>

func popToRootViewController(动画: Bool) -> UIViewController

此方法将清除堆栈,并将您置于根视图控制器。请阅读文档以了解详细信息

https://developer.apple.com/documentation/uikit/uinavigationcontroller/1621855-poptorootviewcontroller?changes=_4

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50563568

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档