今天在測试过程中,出现了这样一个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:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc2luZ19zaW5n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

图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的错误提示的更多相关文章

  1. nested push animation can result in corrupted navigation bar

    2013-12-06 10:15:51.668 CodingForFun[4569:70b] nested push animation can result in corrupted navigat ...

  2. nested pop animation can result in corrupted navigation bar

    nested pop animation can result in corrupted navigation barFinishing up a navigation transition in a ...

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

    [self.navigationController popViewControllerAnimated:NO]; 出现上面的错误是因为pop的时候要确保先让本页面加载完成,即如果在viewDidLo ...

  4. Push to origin/master was rejected (Git提交错误)

    [问题描述] 在使用Git Push代码的时候,会出现 Push to origin/master was rejected 的错误提示. 在第一次提交到代码仓库的时候非常容易出现,因为初始化的仓库和 ...

  5. Push to origin/master was rejected (Git提交错误)(转)

    [问题描述] 在使用Git Push代码的时候,会出现 Push to origin/master was rejected 的错误提示. 在第一次提交到代码仓库的时候非常容易出现,因为初始化的仓库和 ...

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

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

  7. git push时错误提示的解决办法 By default, updating the current branch in a non-bare repository error: is denied,

    在使用git将客户端的修改push到服务器上的时候,出现无法push,提示和stackoverflow上的http://stackoverflow.com/questions/2816369/git- ...

  8. Swift 4.0.2 按下tab bar item时, item会有内缩的animation效果(如同Twitter的tab bar 效果一样)

    先上效果图: 假设 tab bar items 有5个.tag为0,1,2,3,4.storyboard中tab bar controller继承的class叫做xxxVC. class xxxVC: ...

  9. Can't add self as subview的困惑

    2016-05-27 09:40:43.4043 UMLOG: event: session_id=B63F36D84AD478B9F95C7D0F05DD819B, event=user_choos ...

随机推荐

  1. Parallels Desktop与VirturalBox对比

    笔者用了这两款产品,Parallels 和VirtualBox. 下面各讲下各自的优势吧. 先说说Parallels:Parallels和Mac的系统整合非常紧密,并且对于Mac系统,在性能上有很大的 ...

  2. mysql deadlock found when trying to get lock 问题排查

    mysql deadlock found when trying to get lock 问题排查 1 获 取锁等待情况 可以通过检查 table_locks_waited和table_locks_i ...

  3. postgresql共享内存的三个结构体

    本文原创为freas_1990,转载请标明出处:http://blog.csdn.net/freas_1990/article/details/16105797 postgresql的共享内存维护主要 ...

  4. go语言之进阶篇通过结构体生成json

    1.通过结构体生成json 示例: package main import ( "encoding/json" "fmt" ) //成员变量名首字母必须大写 t ...

  5. PredicateBuilder类(linq多条件组合查询)

    PredicateBuilder类如下: public static class PredicateBuilder { /// <summary> /// 机关函数应用True时:单个AN ...

  6. JS的scrollIntoView简单使用

    scrollIntoView方法滚动当前元素,进入浏览器的可见区域 el.scrollIntoView(); // 等同于el.scrollIntoView(true) el.scrollIntoVi ...

  7. javascript学习笔记——怎样改动&lt;a href=&quot;#&quot;&gt;url name&lt;/a&gt;

    0.前言     使用了一段时间javascript,再花了点时间学习了jquery.可是总是感觉自己非常"迷糊",比如<a href="#">ur ...

  8. JavaSE(十)之Map总结 (转)

    http://www.cnblogs.com/zhangyinhua/p/7545979.html 阅读目录(Content) 一.Map接口 1.1.为什么Collection不能满足集合的所有功能 ...

  9. (转)Pixel-Fillrate显卡像素填充率

    [Pixel-Fillrate] “填充率“以每秒钟填充的像素点为单位,“三角形(多边形)生成速度“则表示每秒钟三角形(多边形)生成个数.现在的3D显卡的性能也主要看着两项指标,这两项指标的数值越大, ...

  10. [PureScript] Break up Expressions into Cases in PureScript using Simple Pattern Matching

    Pattern matching in functional programming languages is a way to break up expressions into individua ...