在一些时候隐藏了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
}