iOS7之后系统提供了侧滑手势(interactivePopGestureRecognizer),
即从屏幕左侧边缘滑起会pop回导航控制器栈的上个viewController。
不过如果你自定义了UINavigationViewController或者自定义了返回按钮,系统自带的侧滑返回功能会失效。
一个简单的解决办法 ↓↓↓↓
创建一个 BaseViewController (继承于 UIViewController)
//BaseViewController.m 文件中写以下代码
@interface BaseViewController ()<UIGestureRecognizerDelegate> //声明侧滑手势的delegate
- (void)viewDidLoad {
[super viewDidLoad];
//开启iOS7及以上的滑动返回效果
if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
self.navigationController.interactivePopGestureRecognizer.delegate = self;
}
}
//UIGestureRecognizerDelegate 重写侧滑协议
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer {
return [self gestureRecognizerShouldBegin];;
}
- (BOOL)gestureRecognizerShouldBegin {
NSLog(@"~~~~~~~~~~~%@控制器 滑动返回~~~~~~~~~~~~~~~~~~~",[self class]);
return YES;
}
再创建其它视图控制器的时候继承于该 BaseViewController 即可实现侧滑返回功能。