Adding action to a back swipe Swift 5
在我的应用程序中,我有一个UINavigationController,它在所有ViewController上都放置了一个导航栏,在每个ViewController中,我都有一个自定义的后退按钮。在一个特定的ViewController中,当我返回到以前的ViewController时,我需要发送一些数据。当用户按下带有自定义功能的后退按钮时,我能够执行此操作,但是当用户滑动以返回时,此功能将被忽略。
我尝试使用以下答案:向后滑动swift 4添加一个动作,但是在导航控制器中调用visibleViewController或topViewController只会得到我们要使用的视图控制器(以前的ViewController,不是当前的ViewController) )。在用户向后滑动之前,我需要在ViewController内部的函数。
如何调用在当前ViewController中创建的back函数,以将数据从该ViewController发送到我们将弹出的ViewController。
- 您是否检查过UINavigationControllerDelegate方法?我不确定它是否有此用途。
-
为什么不在视图控制器类中使用viewDidDisappear?
-
也许可以在第二个视图控制器中创建一个弱var可选变量,该变量存储对以前的viewcontroller的引用,然后在第二个视图控制器中覆盖viewWillDisappear(_:)方法,并在该函数中传递数据。
-
或者只是在viewWillDisappear(_:)方法中使用back函数。
-
哇,viewWillDisappear(_:)起作用了!不敢相信我没有想到这一点。谢谢!
似乎您只需要使用viewWillDisappear(_:)并将刚才创建的函数放在这里即可。