加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

iphone – UINavigationController popViewControllerAnimated:

发布时间:2020-12-14 20:03:39 所属栏目:百科 来源:网络整理
导读:下面的代码在iOS 4和5中运行良好,但在iOS 6中使用EXC_BAD_ACCESS崩溃.我很感激任何排除它的帮助.在UITableViewController中调用此代码来处理我的应用程序的搜索逻辑: CATransition *transition = [CATransition animation];transition.duration = 0.3f;tran
下面的代码在iOS 4和5中运行良好,但在iOS 6中使用EXC_BAD_ACCESS崩溃.我很感激任何排除它的帮助.在UITableViewController中调用此代码来处理我的应用程序的搜索逻辑:

CATransition *transition = [CATransition animation];
transition.duration = 0.3f;
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear];
transition.type = kCATransitionFade;

[self.navigationController.view.layer addAnimation:transition forKey:nil];
[self.navigationController popViewControllerAnimated:NO];

我添加tableView的方式类似,并且在调用时不会崩溃:

SearchTVC *searchTable = [[SearchTVC alloc] init];
searchTable.detailViewController = self.detailViewController;

CATransition *transition = [CATransition animation];
transition.duration = 0.3f;
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear];
transition.type = kCATransitionFade;

[self.navigationController.view.layer addAnimation:transition forKey:nil];
[self.navigationController pushViewController:searchTable animated:NO];

可能是什么问题呢?

*编辑

有趣的是,如果我使用[self.navigationController popViewControllerAnimated:YES],则不会发生崩溃; (是,而不是否).但当然这会破坏使用自定义流行动画的目的.

解决方法

检查视图控制器代码中是否有如下所示的行:

self.navigationController.delegate=self;

如果是这样,那么你必须将其重新设置

self.navigationController.delegate=nil;

在你说之前

[self.navigationController popViewControllerAnimated:YES];

否则,popViewControllerAnimated将首先解除分配委托,然后尝试调用它 – 导致崩溃.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读