iOS 有时莫名卡住不动 原来是一级页面进行系统右滑返回,导致整个app卡死

在一些时候隐藏了NavigationBar的时候,却又想使用系统的侧滑返回,调用了navigationController?.interactivePopGestureRecognizer?.delegate = self

这样虽然是可以返回,但是后面发现这个方法有 bug ,就是在一级页面却还能继续往上返回,这样导致 rootviewcontrol 被弹出去了,app界面卡死不动,却不是异常闪退.

找了一下解决方法如下,在 rootviewcontrol 的页面遵寻UIGestureRecognizerDelegate方法

然后在viewWillAppear里面实现navigationController?.interactivePopGestureRecognizer?.delegate = self

最后添加

 funcgestureRecognizerShouldBegin(_gestureRecognizer:UIGestureRecognizer) ->Bool{

    }

就可以了.

完整代码如下


override func viewWillAppear(_animated:Bool) {


        navigationController?.interactivePopGestureRecognizer?.delegate = self

    }


func gestureRecognizerShouldBegin(_gestureRecognizer:UIGestureRecognizer) ->Bool{

        if let viewControls = navigationController?.viewControllers{

            if viewControls.count>1{

                return true

            }

        }

        return false

    }

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容