在模态视图控制器上模拟内存警告清除前一个控制器的内容

Posted

技术标签:

【中文标题】在模态视图控制器上模拟内存警告清除前一个控制器的内容【英文标题】:Simulate memory warning on modal view controller cleans the previous controller's content 【发布时间】:2012-08-07 14:12:46 【问题描述】:

我的应用中有一个模态视图控制器作为主控制器。在一个流程中,它可以在其上呈现另一个模态视图控制器。 所以问题是当我试图在第二个视图控制器上模拟内存警告时,主视图控制器收到- [didReceiveMemoryWarning:] 消息,但它的- [viewDidUnload:] 没有被调用。尽管如此,当第二个视图控制器被关闭时,主视图控制器的所有内容都会消失。 有人可以给我一个线索我该怎么办吗?提前致谢。

【问题讨论】:

【参考方案1】:

模态框与其父级的关系不允许它(父级)在呈现子级时释放。这就是为什么 viewDidUnload 没有被调用的原因。如果您的父母在孩子长大的时候离开,那将是个坏消息,那么创建空引用和灾难就没有什么可以驳回的了。

如果您在主控制器的 -[didRecieveMemoryWarning] 方法中释放任何内容,那么这就是为什么当您返回它时它会消失的原因。

希望这会有所帮助。

【讨论】:

以上是关于在模态视图控制器上模拟内存警告清除前一个控制器的内容的主要内容,如果未能解决你的问题,请参考以下文章

IOS:在模态视图控制器中清除以前的内容

显示为模态的两个导航控制器上的警告

关闭模态视图控制器时更新前一个视图控制器中的pickerView

使用 Instruments 通过模态视图控制器改进内存管理

将其设置为清除后,Swift 模态视图背景显示为黑色

在 iOS 中隐藏模态视图控制器(但将其保存在内存中)