iOS界面卡死但不崩溃
猜测可能原因
1、底部Tabbar隐藏、显示调用频繁,或者重复调用
2、右划返回手势冲突
研究历程
1、多次使用,发现出现的情况多在一级页面跳转到二级页面,Tabbar卡死,点Home键切换APP到后台,重新打开,右划返回后即可使用
得出结果
1、在RootViewController右划返回手势也可以响应,因为没有上一级页面,导致整个程序页面不响应
APP做出如下修改
在一级页面进入和离开时 分别添加禁用和开启右滑返回手势
-(void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];
[self forbiddenSideBack];
}
- (void)viewDidDisappear:(BOOL)animated {
[super viewDidDisappear:animated];
[self resetSideBack];
}
//禁用手势
/**
* 禁用边缘返回
*/
-(void)forbiddenSideBack{
self.isCanSideBack = NO;
//关闭ios右滑返回
if([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
self.navigationController.interactivePopGestureRecognizer.delegate=self;
}
}
/*
恢复边缘返回
*/
- (void)resetSideBack {
self.isCanSideBack=YES;
//开启ios右滑返回
if([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
self.navigationController.interactivePopGestureRecognizer.delegate = nil;
}
}
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer*)gestureRecognizer {
return self.isCanSideBack;
}
这部分是我个人补充部分,非转载部分
我在总结一个问题,如果你的导航栏都有一个基类导航栏控制器的话,直接在基类导航控制器中写入下代码,更可以简洁解决上述问题 只是在修改手势代理的返回结果操作