当用户向右滑动以返回视图时,您可以执行prepareForSegue吗?

时间:2016-11-21 22:51:54

标签: ios swift xcode

假设我有两个观点。如果我在第一个视图中执行推送segue到第二个视图。然后,如果用户按下导航栏上的后退按钮或从屏幕左侧向右滑动,我想执行一些代码,这可能吗?

我会告诉你我想做什么,看看有没有更好的方法来做到这一点。我的第一个视图几乎没有导航栏。但是,第二种观点确实如此。从第一个视图到第二个视图时,没有任何问题,就像导航栏中显示的动画一样。

然而,当我从第二个视图返回第一个视图时,导航栏会一直停留在屏幕上,直到它完全从第二个视图返回。

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

以下代码可能能够满足您的需求。

这是由导航堆栈中的更改触发的,如果父级为nil,则表示视图正在被解除。

在该检查中,您只需隐藏导航控制器。

以下代码适用于Swift 3.0,如果需要,可以很容易地修改Swift 2.2。

override func willMove(toParentViewController parent: UIViewController?) {
    super.willMove(toParentViewController: parent)

    if parent == nil {
        navigationController?.navigationBar.isHidden = true
    }
}

答案 1 :(得分:1)

所以我修复它的方法是使用以下方法:

override func viewWillDisappear(_ animated: Bool)

我根本不知道这种方法。