美文网首页
解决系统自带的导航控制器右滑返回手势失效- Swift

解决系统自带的导航控制器右滑返回手势失效- Swift

作者: 程序猿_Squall | 来源:发表于2017-10-23 12:35 被阅读0次

    最近项目出现一个 Bug,一个导航控制器右滑返回手势失效,为什么系统自带的右滑返回手势失效,这个问题还没有找到原因,解决方法倒是找到了。

    Step1: 添加代理

    navigationController?.interactivePopGestureRecognizer?.delegate = self
    

    Step2: 实现代理

    extension WPGProjectClassController: UIGestureRecognizerDelegate {
        
    }
    

    Step3: 上面代码确实可以实现滑动返回了,但是在根视图的时候也可以侧滑返回,这样当再次在根视图触发一些 Action 的时候就不执行了,所以判断一下是否为根视图控制器。

    override func viewDidDisappear(_ animated: Bool) {
            // 判断是否为根视图控制器
            guard let viewCount = navigationController?.viewControllers.count else {
                return
            }
            print(viewCount)
            if (viewCount > 1) {
                navigationController?.interactivePopGestureRecognizer?.isEnabled = true
            }else{
                navigationController?.interactivePopGestureRecognizer?.isEnabled = false
            }
        }
    

    以上内容参考:http://www.jianshu.com/p/9bc5ed52945d

    相关文章

      网友评论

          本文标题:解决系统自带的导航控制器右滑返回手势失效- Swift

          本文链接:https://www.haomeiwen.com/subject/cgaouxtx.html