美文网首页
popViewController延时释放的问题

popViewController延时释放的问题

作者: Liusr | 来源:发表于2020-07-17 16:45 被阅读0次

现象:
app根控制器是tabbar,tabbar子控制器是navigationController,navigationController根控制器是VC1。在vc1上面push一个vc2,同时实现导航栏隐藏,tabbar隐藏。然后在vc2执行[self.navigationController popViewControllerAnimated:YES];结果VC2不走dealloc。

分析:
1、导航栏隐藏采用给viewcontrollert添加一个关联属性hiddenNavBarWhenPushed,vc2初始化时赋值。然后在导航代理方法中setNavigationBarHidden
2、VC2设置vc.hidesBottomBarWhenPushed = YES;
3、关键点tabbar中rac监听了一个tabbar hidden的信号,然后在里面layoutIfNeeded。就导致了VC2 pop不释放,需要再次push一次才释放上一个vc2。
demo
这个也不属于循环引用问题,试了一系列方法检测不出来的,leaks,调试内存图,MLeaksFinder和FBRetainCycleDetector搭配起来也检测不到。只能从导航和tabbar入手逐个方法排查。

相关文章

  • popViewController延时释放的问题

    现象:app根控制器是tabbar,tabbar子控制器是navigationController,navigat...

  • UIPopoverController 取消箭头

    UIPopoverController *popViewController = [[UIPopoverContr...

  • popViewController

    popViewController返回的时候,[self.navigationController popView...

  • CAS原理分析

    锁机制存在问题 1.在多线程竞争下,加锁、释放锁会导致比较多的上下文切换和调度延时,引起性能问题。 2...

  • Java 锁

    1:锁存在的问题1)在多线程竞争锁的情况下,加锁、释放锁会导致比较多的上下文切换和调度延时,引起性能问题。而且在上...

  • popToViewController的坑

    在使用popViewController时候遇到了两个比较隐蔽的问题.因此,在以后的开发中需要自己注意. tips...

  • UIViewController 常用库

    拦截UIViewController 的 popViewController 事件 每个 push 进来的 VC ...

  • Swift 学习之返回事件的方法有警告⚠️的解决方法

    返回上一层 _ = navigationController?.popViewController(animate...

  • RabbitMQ进阶

    延时消息 延时消息的两种实现办法 过期消息+死信队列(问题 支持顺序 但是消息的粒度不够) 使用延时消息插件 消息...

  • iOS popViewController 失效

    iOS7在viewDidLoad中,请求网络数据,(网络请求开辟线程),在请求失败的时候,在主线程中 popVie...

网友评论

      本文标题:popViewController延时释放的问题

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