我正在开发iOS应用程序,有时我需要跳到我的应用程序的第二个视图上,但完全是在我离开的视图的状态上。我发现popToViewController适合这个操作。我的问题是:其他观点会发生什么?他们是被杀了还是还活着?对于视图之间的导航,我使用navigationController。谢谢。
发布于 2017-05-12 09:57:54
NavigationController就像堆栈一样工作。当你弹出某件东西时,它就被取消了。例如,视图控制器堆栈如下:
-> B -> C -> D
如果要调用popToViewController(B),堆栈应该是:
A -> B
视图控制器C和D应该被取消分配,当然,如果它们没有强大的引用将它们保存在内存中;)
发布于 2017-05-12 09:58:43
导航控制器工作在堆栈上,当我们推送和pop视图controller.When时,我们推送视图控制器,然后在堆栈中查看插入,当我们弹出一个视图时,它从stack.As中移除--我们都知道堆栈是第一优先规则工作的。
popviewcontoller从导航stack.If中弹出一个单一的视图控件,您想要弹出一个特定的视图控制器,然后根据堆栈中该控制器的索引,您可以直接在其上导航。
发布于 2017-05-12 10:00:19
导航控制器为每个视图控制器维护一个导航堆栈,每个控制器都在堆栈上运行,直到它弹出为止,窗口上的一个是topViewController。
当您调用popToViewController时,从导航堆栈获得的所有viewController都将从内存中释放,假设没有其他类会强烈地保存该视图控制器。
https://stackoverflow.com/questions/43934453
复制相似问题