ios - 在 iOS 中是否有向后滑动手势的回调?

标签 ios objective-c uinavigationcontroller

有时当用户返回到之前的 UIViewController 时,我想做点什么。

如果用户点击了 UINavigationBar 中的后退按钮,我可以捕获该事件。

但如果他们使用滑动返回手势返回,我无法响应更改。

那么滑动返回手势有回调吗?

目前我只能通过以下方式在我的应用中禁用这种页面

interactivePopGestureRecognizer.enabled = NO;

最佳答案

最简单的方法是通过执行以下操作来连接到已经内置到 UINavigationController 中的那个:

override func viewDidLoad() {
  super.viewDidLoad()
  navigationController?.interactivePopGestureRecognizer?.addTarget(self, action: #selector(MyViewController.handleBackswipe))
}
    
@objc private func handleBackswipe() {
    navigationController?.interactivePopGestureRecognizer?.removeTarget(self, action: #selector(MyViewController.handleBackswipe))
    // insert your custom code here
}

请记住在您的选择器中调用 removeTarget(_:action:),否则它将向您的选择器发送垃圾邮件,直到手势结束。

关于ios - 在 iOS 中是否有向后滑动手势的回调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32005718/

相关文章:

ios - 如何将 UITextField 的内容传递给另一个由 UITabbarController 链接的 UITableViewController

objective-c - 如何在 Objective-C header 中引用 Swift 枚举

iphone - Flickr API 中错误无效回调 URL 失败

iphone - 如何在从 UINavigationController 弹出 UIViewController 之前显示警报

ios - 在堆栈上嵌入 2 个或更多导航 Controller

iphone - 使用标签栏 Controller 时的方向问题

iphone - 如何在固定时自动显示地点标题?

ios - 如何针对旧版本的 iOS SDK 构建 Xamarin

iphone - 在 iPhone 的不同 C 函数中访问相同的对象?

objective-c - rightBarButtonItem 没有出现在 Navigation Bar iOS 中