美文网首页iOS技术
【Bug】UINavigationController调用add

【Bug】UINavigationController调用add

作者: CodeCola | 来源:发表于2017-08-17 20:21 被阅读13次

    CC:

    最近遇到一个黑屏的奇葩问题,周六查了一天才发现核心问题。

    问题

    UINavigationController在viewDidload或viewWillAppear的时候,对其addChildViewController,会导致UINavigationController的渲染出问题。只有UINavigationBar会渲染出来,content页面是黑屏的。

    而在UINavigationController的viewDidAppear中,执行addChildViewController就没问题。

    - 谁会这么脑残在UINavigationController上加子vc =_=!

    - 想在app内做个悬浮窗口不行啊!

    还没找到相关资料,感觉苹果加了特技。有进度再记录。

    ==========================   分割线  ============================

    2017-09-21 更新:

    昨天又碰到一个UINavigatinController的坑,已解决,原理尚未搞清楚,记录一下:

    UIApplication的初始rootVC是一个UINavigatinController,然后在更换rootVC为一个UIViewController的时候(切换rootVC出现在用户登录登出的场景),对UINavigatinController进行了popViewControllerAnimated:YES的操作,导致内存泄露,UINavigatinController未正常销毁;但是,讲popViewControllerAnimated设置为NO的时候,就不会出现这个问题。

    动画影响了UINavigatinController的释放,原理还没搞清楚,先记录,后续在查。

    相关文章

      网友评论

        本文标题:【Bug】UINavigationController调用add

        本文链接:https://www.haomeiwen.com/subject/bnbnrxtx.html