关于在一级页面进行右滑返回手势导致app卡死现象

最近在项目中出现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;

}

推荐阅读更多精彩内容