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 即可實現側滑返回功能。
