0

我正在开发 iOS 应用程序,有时我需要跳转到我的应用程序的第二个视图,但正是我离开它的视图状态。我发现 popToViewController 适合这个操作。我的问题是:其他观点会怎样?他们是被杀还是在后台还活着?对于视图之间的导航,我使用的是 navigationController。谢谢你。

4

3 回答 3

0

NavigationController 像堆栈一样工作。当你弹出一些东西时,它会被释放。例如视图控制器堆栈是这样的:

A -> B -> C -> D

如果您将调用 popToViewController(B),则堆栈应为:

A -> B

视图控制器 C 和 D 应该被释放,当然,如果它们没有将它们保存在内存中的强引用;)

于 2017-05-12T09:57:54.073 回答
0

当我们推送和弹出视图控制器时,导航控制器在堆栈上工作。当我们推送视图控制器时,视图插入到堆栈中,当我们弹出视图时,它从堆栈中删除。众所周知,堆栈正在按照先进先出规则工作。

popviewcontoller 从导航堆栈中弹出单个 viewcontoller。如果要弹出特定的 viewcontoller,则可以根据堆栈中该控制器的索引直接在其上导航。

于 2017-05-12T09:58:43.117 回答
0

导航控制器为每个视图控制器维护一个导航堆栈,每个控制器都在堆栈中直到它弹出,窗口上的一个是 topViewController。

当您调用 popToViewController 时,所有从导航堆栈中弹出的 viewController 将从内存中释放,假设没有其他类强烈持有该视图控制器。

于 2017-05-12T10:00:19.617 回答