首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UINavigationController交互流行手势不工作吗?

UINavigationController交互流行手势不工作吗?
EN

Stack Overflow用户
提问于 2013-09-23 00:52:25
回答 6查看 32.7K关注 0票数 37

因此,我在为iOS 7构建的应用程序中有一个导航控制器。titleView是可见的,后退按钮和导航栏也是可见的。由于某些原因,交互式弹出手势(从左侧滑动)不起作用。什么都没发生。当我记录这个手势时,它不是nil。要启用此功能,我需要执行什么特殊操作吗?是什么原因导致它无法工作?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2013-09-23 03:37:28

嗯,看起来我只需要设置手势委托并实现以下内容:

代码语言:javascript
复制
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {

    return YES;

}
票数 29
EN

Stack Overflow用户

发布于 2015-07-20 23:00:36

看看这个response和评论。您所要做的就是将导航控制器的交互式弹出手势识别器的委托设置为nil

代码语言:javascript
复制
self.navigationController.interactivePopGestureRecognizer.delegate = nil;

将其设置为强制转换为id<UIGestureRecognizerDelegate>也是有效的,因为协议中的所有方法都是可选的,但我认为在这种情况下,将委托设置为nil更合适。

票数 18
EN

Stack Overflow用户

发布于 2019-08-27 17:21:14

我的答案是基于Eneko的答案,但只使用了UINavigationController上的一个扩展,并且适用于Swift 5:

代码语言:javascript
复制
extension UINavigationController: UIGestureRecognizerDelegate {

    override open func viewDidLoad() {
        super.viewDidLoad()
        interactivePopGestureRecognizer?.delegate = self
    }

    public func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool {
        return viewControllers.count > 1
    }
}
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18946302

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档