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

2017-10-23  本文已影响0人  程序猿_Squall

最近项目出现一个 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

上一篇下一篇

猜你喜欢

热点阅读