如何从导航堆栈中删除 ViewController 并且没有返回到它的选项-Swift
Posted
技术标签:
【中文标题】如何从导航堆栈中删除 ViewController 并且没有返回到它的选项-Swift【英文标题】:How to remove a ViewController from navigation stack and not have the option to go back to it-Swift 【发布时间】:2017-11-16 16:27:29 【问题描述】:我有一个登录页面,如果登录成功,用户将被带到登陆 viewController(VC)。我有一个导航控制器。我弹出登录 VC 并推入登陆 VC。我遇到的问题是登录 VC 保留在堆栈中,如导航控制器上的左按钮所示,该按钮将您导航回登录页面。如何从堆栈中完全删除登录 VC,以便导航控制器无法在用户登录后将其导航回它?
self.navigationController?.popViewController(animated: true)
let landingPage = self.storyboard?.instantiateViewController(withIdentifier: "landingPage") as!
LandingViewController
self.navigationController?.pushViewController(landingPage, animated: true)
【问题讨论】:
UINavigationController.viewControllers 是导航堆栈,您可以删除一个并将数组再次设置为 NavigationController 你能详细介绍一下吗? 检查@Wez提供的答案是我在说什么 【参考方案1】:您可以使用setViewControllers
方法来设置堆栈,如下所示:
self.navigationController?.setViewControllers([landingPage], animated: true)
你也不需要先弹出登录视图控制器。
【讨论】:
以上是关于如何从导航堆栈中删除 ViewController 并且没有返回到它的选项-Swift的主要内容,如果未能解决你的问题,请参考以下文章
以编程方式从 ARC 中的导航堆栈中删除 viewController