最近在项目中出现app卡死现象,找了很久终于是找到原因,原来是在一级页面也进行了右滑返回手势,导致出现的app卡死,只有按home键回到桌面,再进入app才能恢复。
于是在网上找的解决办法,给大家分享下,希望能帮助到和我一样遇到这个问题的大兄弟
个人思路:
1 设置一个bool 来判断时候在一级页面开启右滑返回
2 在viewDidAppear和viewDidDisappear方法里分别关闭、开启右滑返回手势
3 大功告成
废话不多说,上代码
@property(nonatomic,assign)BOOL isGesture;//手势是否启动
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
//防止在一级页面右滑,出现卡死现象
[self closeGesture];
}
- (void)viewDidDisappear:(BOOL)animated {
[super viewDidDisappear:animated];
//防止在一级页面右滑,出现卡死现象
[self openGesture];
}
/**
*关闭ios右滑返回
*/
-(void)closeGesture{
self.isGesture=NO;
if([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
self.navigationController.interactivePopGestureRecognizer.delegate=self;
}
}
/*
开启ios右滑返回
*/
- (void)openGesture {
self.isGesture=YES;
if([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
self.navigationController.interactivePopGestureRecognizer.delegate=nil;
}
}
// 最后通过bool 值判断手势响应
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer*)gestureRecognizer {
return self.isGesture;
}