T iOS开发小贴士—APP界面跳转卡死问题 - CocoaChina_让移动开发更简单

首页 >iOS开发

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

2017-08-11 14:42 编辑: 四门三连 分类:iOS开发 来源:程序猿木子李

本人项目中出现偶发性的从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;
}


搜索CocoaChina微信公众号:CocoaChina
微信扫一扫
订阅每日移动开发及APP推广热点资讯
公众号:
CocoaChina
我要投稿   收藏文章
上一篇:OpenGL杂谈之复用GLSL代码
下一篇:自造小轮子:轻量级SDWebImage
我来说两句
发表评论
您还没有登录!请登录注册
所有评论(0

综合评论

相关帖子

sina weixin mail 回到顶部