popToViewController 生命周期
Posted
技术标签:
【中文标题】popToViewController 生命周期【英文标题】:popToViewController life cycle 【发布时间】:2017-05-12 09:43:32 【问题描述】:我正在开发 ios 应用程序,有时我需要跳转到我的应用程序的第二个视图,但正是我离开它的视图状态。我发现 popToViewController 适合这个操作。我的问题是:其他观点会怎样?他们是被杀还是在后台还活着?对于视图之间的导航,我使用的是 navigationController。 谢谢。
【问题讨论】:
【参考方案1】:NavigationController 像堆栈一样工作。当你弹出一些东西时,它会被释放。例如视图控制器堆栈如下:
A -> B -> C -> D
如果您将调用 popToViewController(B),则堆栈应为:
A -> B
视图控制器 C 和 D 应该被释放,当然如果它们没有强引用将它们保留在内存中;)
【讨论】:
【参考方案2】:当我们推送和弹出视图控制器时,导航控制器在堆栈上工作。当我们推送视图控制器时,视图插入到堆栈中,当我们弹出视图时,它从堆栈中删除。我们都知道堆栈正在优先处理排除规则。
popviewcontoller 从导航堆栈中弹出单个 viewcontoller。如果要弹出特定的 viewcontoller,则可以根据堆栈中该控制器的索引直接在其上导航。
【讨论】:
【参考方案3】:导航控制器为每个视图控制器维护一个导航堆栈,每个控制器在弹出之前都在堆栈上,窗口上的那个是topViewController。
当您调用 popToViewController 时,所有从导航堆栈中弹出的 viewController 将从内存中释放,假设没有其他类强烈持有该视图控制器。
【讨论】:
以上是关于popToViewController 生命周期的主要内容,如果未能解决你的问题,请参考以下文章
683 vue3的动态组件,keep-alive,缓存组件的生命周期,异步组件和Suspense,$refs,$parent和$root,生命周期,组件的v-model