swift – interactivePopGestureRecognizer破坏了根视图控制器上的导航堆栈

swift – interactivePopGestureRecognizer破坏了根视图控制器上的导航堆栈,第1张

概述在我的UINavigationController中,我添加了自定义后退按钮,其副作用是不再可以从左向右滑动以d出视图控制器并导航回来. 所以我在自定义UINavigationController类中实现了interactivePopGestureRecognizer: class UINavigationControllerExtended: UINavigationController, UI 在我的UINavigationController中,我添加了自定义后退按钮,其副作用是不再可以从左向右滑动以d出视图控制器并导航回来.

所以我在自定义UINavigationController类中实现了interactivePopGestureRecognizer:

class UINavigationControllerExtended: UINavigationController,UIGestureRecognizerDelegate {    overrIDe func vIEwDIDLoad() {        super.vIEwDIDLoad()        if self.respondsToSelector(Selector("interactivePopGestureRecognizer")) {            self.interactivePopGestureRecognizer?.delegate = self        }    }    func gestureRecognizer(gestureRecognizer: UIGestureRecognizer,shouldRecognizeSimultaneouslyWithGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool {        return true    }    func gestureRecognizer(gestureRecognizer: UIGestureRecognizer,shouldBerequiredToFailByGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool {        return gestureRecognizer.isKindOfClass(UIScreenEdgePanGestureRecognizer)    }}

这工作正常,除非我在我的根视图控制器(RVC)中,它是一个UICollectionVIEwController,即导航堆栈中最底层的视图控制器.当我从左到右滑动手势时,似乎没有任何事情发生,正如预期的那样.但是当我点击UICollectionVIEwCell时,目标视图控制器(DVC)不会被推过RVC.相反,我只在屏幕右侧看到DVC的阴影.

RVC不再响应,但当我再次从左向右滑动时,DVC以交互方式从右向左移动到屏幕中.当我完成手势时,DVC完全移动到屏幕中,以便从左到右快速消失. RVC再次响应.

所以似乎DVC被推到了导航堆栈上,但没有明显地进入屏幕.

这个奇怪的行为起源的任何建议?

我目前的解决方案是禁用根视图控制器中的interactivePopGestureRecognizer:
overrIDe func vIEwDIDAppear(animated: Bool) {    super.vIEwDIDAppear(animated)    self.navigationController?.interactivePopGestureRecognizer?.enabled = false}

在第一个子视图控制器中,我再次启用它.但这似乎更像是一种解决方法,因为我不了解导航堆栈首先搞砸的实际问题.

总结

以上是内存溢出为你收集整理的swift – interactivePopGestureRecognizer破坏了根视图控制器上的导航堆栈全部内容,希望文章能够帮你解决swift – interactivePopGestureRecognizer破坏了根视图控制器上的导航堆栈所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1029929.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存