Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/115.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 当用户向右滑动以返回视图时,是否可以执行prepareForSegue?_Ios_Swift_Xcode - Fatal编程技术网

Ios 当用户向右滑动以返回视图时,是否可以执行prepareForSegue?

Ios 当用户向右滑动以返回视图时,是否可以执行prepareForSegue?,ios,swift,xcode,Ios,Swift,Xcode,假设我有两种观点。如果我在第一个视图中,我执行到第二个视图的推送序列。然后,如果用户按下导航栏上的后退按钮或从屏幕左侧向右滑动,我想执行一些代码,这可能吗 我会确切地告诉你我想做什么,看看是否有更好的方法来做到这一点。我的第一个视图几乎没有导航栏。然而,第二种观点确实如此。当从第一个视图转到第二个视图时,不会出现任何问题,如在动画中导航栏所示 但是,当我从第二个视图返回到第一个视图时,导航栏将保持在屏幕上,直到它完全从第二个视图返回 谢谢你的帮助 以下代码可能能够完成您需要的功能 这是由导航堆栈

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

我会确切地告诉你我想做什么,看看是否有更好的方法来做到这一点。我的第一个视图几乎没有导航栏。然而,第二种观点确实如此。当从第一个视图转到第二个视图时,不会出现任何问题,如在动画中导航栏所示

但是,当我从第二个视图返回到第一个视图时,导航栏将保持在屏幕上,直到它完全从第二个视图返回


谢谢你的帮助

以下代码可能能够完成您需要的功能

这是由导航堆栈中的更改触发的,如果父级为nil,则表示视图将被取消

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

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

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

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

因此,我用以下方法解决了这个问题:

override func viewWillDisappear(_ animated: Bool)

我根本不知道这种方法

所以我尝试了你的方法,但我遇到了一个问题。因为我有一个蓝色的背景,导航栏突然变成蓝色,即使我的栏是黑色的。所以这是一个问题。下一个问题是,如果用户从左边缘向右滑动,然后再向后滑动到左角(防止继续),则导航栏不见了。