假设我有两种观点。如果我在第一个 View 中,并且我对第二个 View 执行了推送转场。然后,如果用户按下导航栏上的后退按钮或从屏幕左侧向右滑动,我想执行一些代码,这可能吗?
我会确切地告诉你我想做什么,看看是否有更好的方法来做到这一点。几乎我的第一个 View 没有导航栏。然而,第二种观点确实如此。从第一个 View 转到第二个 View 时没有问题,因为在动画中显示了导航栏。
但是,当我从第二个 View 返回到第一个 View 时,导航栏会停留在屏幕上,直到它完全从第二个 View 返回。
感谢您的帮助!
最佳答案
下面的代码或许可以完成你所需要的。
这是由导航堆栈中的更改触发的,如果父级为 nil,则表示 View 正在被关闭。
在该检查中,您只需隐藏导航 Controller 。
以下代码适用于 Swift 3.0,如果需要,可以很容易地针对 Swift 2.2 进行修改。
override func willMove(toParentViewController parent: UIViewController?) {
super.willMove(toParentViewController: parent)
if parent == nil {
navigationController?.navigationBar.isHidden = true
}
}
关于ios - 当用户向右滑动以返回 View 时,您可以执行 prepareForSegue 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40730856/