zoukankan      html  css  js  c++  java
  • 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上。此次教训须谨记啊。


  • 相关阅读:
    集成学习值Adaboost算法原理和代码小结(转载)
    集成学习原理小结(转载)
    2019阿里校招测评题,光明小学完全图最短路径问题(python实现)
    第八节、图片分割之GrabCut算法、分水岭算法
    Scala2.11.8 spark2.3.1 mongodb connector 2.3.0
    spark 实现动态日期读取
    Idea 201601注册码
    linux下的crontab服务
    spark MySQL jar 包
    scala 日期格式转换
  • 原文地址:https://www.cnblogs.com/gavanwanggw/p/7358437.html
Copyright © 2011-2022 走看看