iOS开发小贴士—APP界面跳转卡死问题

本人项目中出现偶发性的从A页面跳转B页面卡死问题。并不是crash,断点显示跳转代码已经运行,只是界面卡主,返回主界面再返回程序,跳转完成。

分析发生原因

1、界面某控件内存未释放,导致的内存的溢出(可能性不大,ARC且界面并不复杂)
2、手势冲突(可能性较大)
3、是否跟Tabbar和Navigation有关

解决方案

经过上网查找方案,以及自己分析代码。最终判断是手势冲突问题(此情况主要发生在一级页面与二级页面之间且基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;

}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容