在平时做项目时,有时候需要自定义导航条的返回按钮,这个时候会发现失去了系统自带的手势侧滑返回功能,网上很多解决方法效果是实现了,但是有卡顿现象。
下面的代码将完美解决这个问题:
/**
* 是否正在手势返回中的标示状态
*/
static BOOL _isPoping;
-(BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer{
if (!_isPoping) {
_isPoping = YES;
return YES;
}
return NO;
}
-(void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
//开启ios右滑返回
if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
self.navigationController.interactivePopGestureRecognizer.delegate = nil;
}
}
- (void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];
//在didAppear时置为NO
_isPoping = NO;
}
}