popToViewController 生命周期
popToViewController life cycle
我正在开发 iOS 应用程序,有时我需要跳转到我的应用程序的第二个视图,但恰好是我离开它时的视图状态。我发现 popToViewController 适合这个操作。我的问题是:其他观点会怎样?他们是被杀了还是还活着?对于视图之间的导航,我使用的是 navigationController。
谢谢。
NavigationController 像堆栈一样工作。当你弹出一些东西时,它正在被释放。例如视图控制器堆栈是这样的:
A -> B -> C -> D
如果您将调用 popToViewController(B),堆栈应该是:
A -> B
视图控制器 C 和 D 应该被释放,当然如果它们没有将它们保存在内存中的强引用 ;)
当我们推送和弹出视图时,导航控制器在堆栈上工作controller.When我们推送视图控制器,然后将视图插入堆栈,当我们弹出视图时,它会从堆栈中删除stack.As我们都知道堆栈正在制定先进先出规则。
popviewcontoller 从导航中弹出一个 viewcontoller stack.If 你想弹出一个特定的 viewcontoller 然后根据堆栈中该控制器的索引你可以直接在它上面导航。
导航控制器为每个视图控制器维护一个导航堆栈,每个控制器都存在于堆栈中直到弹出,window 上的那个是 topViewController。
当您调用 popToViewController 时,所有 viewController 从导航堆栈中获取弹出将从内存中释放,假设没有其他 class 强烈持有该视图控制器。
我正在开发 iOS 应用程序,有时我需要跳转到我的应用程序的第二个视图,但恰好是我离开它时的视图状态。我发现 popToViewController 适合这个操作。我的问题是:其他观点会怎样?他们是被杀了还是还活着?对于视图之间的导航,我使用的是 navigationController。 谢谢。
NavigationController 像堆栈一样工作。当你弹出一些东西时,它正在被释放。例如视图控制器堆栈是这样的:
A -> B -> C -> D
如果您将调用 popToViewController(B),堆栈应该是:
A -> B
视图控制器 C 和 D 应该被释放,当然如果它们没有将它们保存在内存中的强引用 ;)
当我们推送和弹出视图时,导航控制器在堆栈上工作controller.When我们推送视图控制器,然后将视图插入堆栈,当我们弹出视图时,它会从堆栈中删除stack.As我们都知道堆栈正在制定先进先出规则。
popviewcontoller 从导航中弹出一个 viewcontoller stack.If 你想弹出一个特定的 viewcontoller 然后根据堆栈中该控制器的索引你可以直接在它上面导航。
导航控制器为每个视图控制器维护一个导航堆栈,每个控制器都存在于堆栈中直到弹出,window 上的那个是 topViewController。
当您调用 popToViewController 时,所有 viewController 从导航堆栈中获取弹出将从内存中释放,假设没有其他 class 强烈持有该视图控制器。