繁体   English   中英

如何弹出除一个以外的所有视图控制器?

[英]How to pop all view controllers except one?

让我有FirstViewController 用户从FirstViewController 模态打开UINavigationController(rootViewController: SecondViewController()) SecondViewController ,用户可以使用pushViewController方法走得更远。 在此旅行期间,用户进入FifthViewController ,其中关闭按钮作为leftBarButtonItem存在。 当它被按下时,我想显示FirstViewController ,而不是SecondViewController 如何使用最佳实践来实现这一目标?

我的想法:从FifthViewController ,可以使用popToRootViewController方法。 它将显示SecondViewController 在SecondViewController中,我需要以某种方式处理它(我不知道如何)并将其关闭。 但是我认为这种方法是不正确的。 而且,此方法很长,因为显示了SecondViewController(可以避免)。 那么,最好的方法是什么?

您需要做的就是在导航控制器的self.dismiss上调用self.dismiss 这将删除UINavigationController中所有推入的视图控制器,并关闭UINavigationController本身。

您可以在navigationController?.viewControllers找到导航堆栈。 使用您要查找的viewController并使用

navigationController?.popToViewController(someViewController, animated: true)

回去。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM