![](/img/trans.png)
[英]How to dismiss all but one view controllers and pop to specified view controller in Swift?
[英]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.