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