对 IOS 控制器有一般性问题:
在启动 ios 创建默认 UI 视图控制器,然后我可以调用 presentViewController 或使用 Segue 打开其他
问题是以前的控制器是否仍在内存中?
例如这里是链:A->B->C->D->B->C.... 以此类推,转换 B->C->D->B 处于循环中。
它会创建每个控制器的新实例并保留每个副本吗?它会重复使用吗?
谢谢
对 IOS 控制器有一般性问题:
在启动 ios 创建默认 UI 视图控制器,然后我可以调用 presentViewController 或使用 Segue 打开其他
问题是以前的控制器是否仍在内存中?
例如这里是链:A->B->C->D->B->C.... 以此类推,转换 B->C->D->B 处于循环中。
它会创建每个控制器的新实例并保留每个副本吗?它会重复使用吗?
谢谢
是的,如果您正在执行模态序列并且 presentViewController 调用 ViewControllers 仍然存在。而不是继续使用您已经创建的这些 viewController 的新实例,您应该调用[self dismissViewControllerAnimated:YES completion:nil];
并关闭堆栈以返回到您已经创建的 viewController。
您可以使用如下presentingViewController
属性:
[[[self presentingViewController]presentingViewController]dismissViewControllerAnimated:YES completion:nil]...etc
或者
[self.navigationController popToRootViewControllerAnimated:YES];
(如果您使用的是导航 VC)
为了快速关闭几个视图控制器。
viewDidLoad
不会再次被调用,但您可以在viewWillAppear
and中刷新 viewController viewDidAppear
。