swift – interactivePopGestureRecognizer破坏了根视图控制器上
发布时间:2020-12-14 05:24:10 所属栏目:百科 来源:网络整理
导读:在我的UINavigationController中,我添加了自定义后退按钮,其副作用是不再可以从左向右滑动以弹出视图控制器并导航回来. 所以我在自定义UINavigationController类中实现了interactivePopGestureRecognizer: class UINavigationControllerExtended: UINavigat
在我的UINavigationController中,我添加了自定义后退按钮,其副作用是不再可以从左向右滑动以弹出视图控制器并导航回来.
所以我在自定义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 } 在第一个子视图控制器中,我再次启用它.但这似乎更像是一种解决方法,因为我不了解导航堆栈首先搞砸的实际问题. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 一名系统管理员被指控用逻辑炸弹破坏前雇主的Oracle数据库!
- .net – 与我实现它的方式相比,IoC Container如何实现依赖注
- 使用Flex itemEditors – Part 1: Inline itemEditors(翻译
- vb6 Add-In 错误处理用获取当前函数名
- Oracle将查询的结果放入一张自定义表中并再查询数据
- CSSwiftExtension - 贡献一个非常好用的Swift extension集合
- ocp Oracle.1z0-053 711--122
- React-Native改变FB官网实例
- C#清理C分配的内存吗?
- Qt中用正则表达式来判断Text的语种,主要通过判断unicode的