3

对 IOS 控制器有一般性问题:

在启动 ios 创建默认 UI 视图控制器,然后我可以调用 presentViewController 或使用 Segue 打开其他

问题是以前的控制器是否仍在内存中?

例如这里是链:A->B->C->D->B->C.... 以此类推,转换 B->C->D->B 处于循环中。

它会创建每个控制器的新实例并保留每个副本吗?它会重复使用吗?

谢谢

4

1 回答 1

6

是的,如果您正在执行模态序列并且 presentViewController 调用 ViewControllers 仍然存在。而不是继续使用您已经创建的这些 viewController 的新实例,您应该调用[self dismissViewControllerAnimated:YES completion:nil];并关闭堆栈以返回到您已经创建的 viewController。

您可以使用如下presentingViewController属性:

[[[self presentingViewController]presentingViewController]dismissViewControllerAnimated:YES completion:nil]...etc 

或者

[self.navigationController popToRootViewControllerAnimated:YES];(如果您使用的是导航 VC)

为了快速关闭几个视图控制器。 viewDidLoad不会再次被调用,但您可以在viewWillAppearand中刷新 viewController viewDidAppear

于 2013-06-10T22:43:47.653 回答