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 生命周期的主要内容,如果未能解决你的问题,请参考以下文章

React v16.4 的生命周期

React V16.x 生命周期调整

React 学习笔记总结

vue02-生命周期和基本命令

Vue:基础语法、创建组件、组件间传值、实例生命周期

683 vue3的动态组件,keep-alive,缓存组件的生命周期,异步组件和Suspense,$refs,$parent和$root,生命周期,组件的v-model