UINavigationController出现nested push animation can result in corrupted navigation bar的错误提示

今天在测试过程中,出现了这样一个bug,分别有两种情景:

(前提是:app是基于UINavigationController构建的)

1、从Controller-A中push进来B。在B中点击返回,返回的界面为黑色一片。再做返回操作就crash了。

如图1:

2、从Controller-A中push进入B,此时B中tableview出现错位现象(图2),tableview被navigationbar覆盖了一部分,在B中再push一个C进来。此时只显示了C的navigationbar,但下方的view还是保留为B的view(图3)。再进行返回操作,程序crash。

如图2:

图3:

崩溃后,查看控制台的log,发现这样一句话:

nested push animation can result in corrupted navigation bar

捣弄了好久,也找了资料,还是没办法解决。

后来在Controller-B中的viewdidload打印了navigationcontroller的所有压栈viewcontrollers,发现在B之前多了一个无关的viewcontroller-D,再检查代码。原来在点击A的cell的时候(didSelectRowAtIndexPath)push了一个D,但在storyboard上,对A的点击已经加了一个跳转到B的segue。正是由于同一时间push了两个controller进来,所以就会出现这样的警告以及后面的奇怪错误。

将A中didSelectRowAtIndexPath位置的push代码去掉,再测试。问题完全解决了。

纠缠了半天的bug,原来是一个小失误导致的。

由于整个项目是两个人一起做的,相互没沟通好或者没仔细了解好结构就盲目写代码,最终只会花费大量时间在debug上。此次教训须谨记啊。

UINavigationController出现nested push animation can result in corrupted navigation bar的错误提示,布布扣,bubuko.com

时间: 2024-10-03 17:16:39

UINavigationController出现nested push animation can result in corrupted navigation bar的错误提示的相关文章

nested push animation can result in corrupted navigation bar

2014-07-05 17:11:20.594 SevenStars[2185:60b] nested push animation can result in corrupted navigation bar 2014-07-05 17:11:21.005 SevenStars[2185:60b] Finishing up a navigation transition in an unexpected state. Navigation Bar subview tree might get

nested pop animation can result in corrupted navigation bar

nested pop animation can result in corrupted navigation barFinishing up a navigation transition in an unexpected state. Navigation Bar subview tree might get corrupted. 我出现这个错误的情况,输入框输入状态下push到下个页面返回的时候会出错,4上测试

转:UINavigationBar返回上一级出现nested pop animation can result in corrupted navigation bar

[self.navigationController popViewControllerAnimated:NO]; 出现上面的错误是因为pop的时候要确保先让本页面加载完成,即如果在viewDidLoad中加载一个请求,想在成功的时候没有数据时直接pop回来时就会出现混叠不清的情况 解决办法:延迟执行pop后的push,或者push 后的pop,即使0.1s都行. 如:[self performSelector:@selector(pop) withObject:nilafterDelay:1]

git push 出现 you are not allowed to upload merges 错误提示

解决方法:敲git rebase 然后按提示执行就行了,如果rebase 发生冲突的话,则修改,修改完后git add -u filename,然后git rebase --continue ,直到没有冲突为止.不需要commit .最后再上code(参考链接 参考链接2)出现问题的原因:在本地分支ahead 远程分支commit 不止一个的 时候,即是出现了分叉,在这种情况下使用了git pull 更新代码之后去git push 就会产生如此情况解决原理: 使用rebase,”放弃“本地补丁,

UINavigationController在一个界面push到另一个界面传数据时的注意点

在push到下一个controller的时候,应注意以下几点: 1>在执行push代码的时候,才创建controller,不要在push之前使用controller里面的view 如下面的错误事例: CommentModel *model = [_arraySaveDataobjectAtIndex:but.tag]; CommentDetailViewController *commentDetailVC = [[CommentDetailViewControlleralloc] init];

使用JPA保存对象时报nested exception is javax.persistence.RollbackException: Transaction marked as rollbackOnly错误

刚开始以为是数据库中的表有问题,主键的字段不能为空,结果给它赋值了还是不行,再一看数据库中有些非空的字段没有设值,又改了 一下表的结构,允许为空,结果还是报错.再一想是不是因为实体类实现了序列化的原因

在用TabbarController中出现navigationController 嵌套报错

如果出现: nested push animation can result in corrupted navigation bar Finishing up a navigation transition in an unexpected state. Navigation Bar subview tree might get corrupted. 一般这种情况是在自定义的tabbarController 的ViewWillAppera中没有调用superWillAppera, 调用父类方法就

iOS 开发百问(5)

42. 警告:Multiplebuild commands for output file target引用了名字反复的资源 找到当前的target,展开之后.找到CopyBundle Resources栏目.然后在里面找到反复名字的资源.删除不要的那个就可以 43.签名错误:Provisioningprofile can't be found 在Xcode中当你在更新了你得证书而再又一次编译你的程序,真机调试一直会出现Code Sign error: Provisioning profile

iOS开发——OC篇&常用问题解答(一)

常用问题解答 1.设置 ImagePicker 的大小 ImagePicker 在 Popover Controller 总是以默认大小显示,设置 popoverContentSize 属性似乎无用.解决办法是将ImagePicker “包含”到一个定制的 ViewController 中,然后再 presentPopover 这个 ViewController : UIViewController *containerController = [[UIViewController alloc]