【问题标题】:Adding action to a back swipe Swift 5将动作添加到后滑动 Swift 5
【发布时间】:2019-10-27 07:04:01
【问题描述】:

在我的应用程序中,我有一个 UINavigationController,它在我的所有 ViewController 上放置了一个导航栏,并且在每个 ViewController 中我都有一个自定义的后退按钮。在一个特定的 ViewController 中,我需要在返回前一个 ViewController 时发送一些数据。当用户使用自定义功能按下后退按钮时,我能够做到这一点,但是当用户滑动返回时,此功能会被忽略。

我尝试使用这个答案:Adding an action to back swipes swift 4,但在导航控制器中调用 visibleViewControllertopViewController 只会获得我们要访问的视图控制器(之前的 ViewController,而不是当前的)。在用户向后滑动之前,我需要我们所在的 ViewController 中的函数。

如何调用我在当前 ViewController 中创建的 back 函数,将数据从该 ViewController 发送到我们将弹出的 ViewController。

【问题讨论】:

  • 您检查过UINavigationControllerDelegate 方法吗?我不确定它是否有此用途。
  • 为什么不在视图控制器类中使用viewDidDisappear
  • 也许在你的第二个视图控制器中创建一个 weak var optional 来存储对前一个视图控制器的引用,然后在第二个视图控制器并在该函数中传递数据。
  • 或者只是在viewWillDisappear(_:)方法中使用你的返回函数。
  • 哇,viewWillDisappear(_:) 工作了!不敢相信我没想到。谢谢!

标签: ios swift uinavigationcontroller back


【解决方案1】:

看来你只需要使用viewWillDisappear(_:),把你做的函数放在这里就行了。

【讨论】:

    猜你喜欢
    • 2016-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-08
    • 2015-12-07
    相关资源
    最近更新 更多