虽然iOS导航控制器自带手势滑动返回,但 有些情况下,iOS自带的手势返回效果会失效。解决这一问题,只需在基类的导航控制器里加这么一句代码即可。
self.navigationController.interactivePopGestureRecognizer.delegate = (id<UIGestureRecognizerDelegate>)self;
这样解决了手势返回问题,有可能会引入新的问题,就是你在最原始的页面快速右滑手势返回,再点击按钮push的时候,可能会卡在当前页面。解决这个问题,仅需要在UINavgationController的基类中加入一句话
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer {
return self.childViewControllers.count > 1;
}
到此,,完美解决。
网友评论