iOS开发小贴士—APP界面跳转卡死问题
本人项目中出现偶发性的从A页面跳转B页面卡死问题。并不是crash,断点显示跳转代码已经运行,只是界面卡主,返回主界面再返回程序,跳转完成。分析发生原因
1、界面某控件内存未释放,导致的内存的溢出(可能性不大,ARC且界面并不复杂)
2、手势冲突(可能性较大)
3、是否跟Tabbar和Navigation有关
解决方案
【iOS开发小贴士—APP界面跳转卡死问题】经过上网查找方案,以及自己分析代码。最终判断是手势冲突问题(此情况主要发生在一级页面与二级页面之间且基VC右划返回手势也可以响应,因为没有上一级页面,导致整个程序页面不响应)
向一级页面添加如下代码即可:
-(void)viewDidAppear:(BOOL)animated{[super viewDidAppear:animated];
[self forbiddenSideBack];
}- (void)viewDidDisappear:(BOOL)animated {[super viewDidDisappear:animated];
[self resetSideBack];
}#pragma mark -- 禁用边缘返回
-(void)forbiddenSideBack{self.isCanBack = NO;
//关闭ios右滑返回if([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {self.navigationController.interactivePopGestureRecognizer.delegate=self;
}}#pragma mark --恢复边缘返回
- (void)resetSideBack {self.isCanBack=YES;
//开启ios右滑返回if([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {self.navigationController.interactivePopGestureRecognizer.delegate = nil;
}}- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer*)gestureRecognizer {return self.isCanBack;
}
推荐阅读
- ios-|ios- 常见数据类型转换
- ios开发学习笔记-01
- iOS|iOS 代码半自动生成工具
- 人脸识别|使用Python+Dlib构建人脸识别系统(在Nvidia Jetson Nano 2GB开发板上)
- Android开发(实现添加系统联系人(手机号码,姓名))
- python|python GUI库图形界面开发之PyQt5布局控件QHBoxLayout详细使用方法与实例
- 阿里官方 Redis 开发规范
- Spring纯注解开发模式让开发简化更简化
- iOS|iOS - 统计代码行数
- uni-app之iOS平台原生插件开发