gpt4 book ai didi

ios - 当滑动到pop viewController时如何识别interactivePopGestureRecognizer是否成功进行?

转载 作者:行者123 更新时间:2023-11-30 12:16:51 25 4
gpt4 key购买 nike

我想在用户滑动页面弹出 viewController 时清理一些属性,使其与点击后退按钮一样工作。

我尝试了以下代码,但它失败了,因为并非每次滑动都会成功。由于手势被取消,某些弹出操作可能会失败。

而且我在 UIGestureRecognizer 中找不到足够好的委托(delegate)(以找到类似 touchesEnded 的东西)。我也不能使用目标操作,因为操作会被调用太多次。

func viewWillAppear(_ animated: Bool) {
self.navigationController.interactivePopGestureRecognizer.delegate = self
}
func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool {
viewModel.goBackPage(isSwipeBack: true)
return true
}

如何在正确的时刻解决滑动弹出 viewController 时触发 backButtonPressed 的问题?

最佳答案

我发现即使刷卡不成功也会调用viewWillDisappear。所以我把它改成这样:

override func viewDidDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)

print("viewDidDisappear \(self)")
if isSwipePop && isMovingFromParentViewController {
viewModel.goBackPage(withPopViewController: true)
}

isSwipePop = false
}
<小时/>

有关详细信息,这是从第二页滑动到第一页的场景。

从第二页滑动到第一页,滑动到第一页中途松开,则弹回到第二页:

viewWillDisappear 第二页
viewWillAppear 第一页
viewWillDisappear 第一页
viewDidDisappear 第一页
viewWillAppear 第二页
viewDidAppear 第二页

成功从第二页滑动到第一页:

viewWillDisappear 第二页
viewWillAppear 第一页
viewDidDisappear 第二页
viewDidAppear 第一页

关于ios - 当滑动到pop viewController时如何识别interactivePopGestureRecognizer是否成功进行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45321714/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com