我从来没有遇到过这个问题。我在 UINavigationController 中有一个 UIViewController。当收到内存警告时(不管级别),visible Controller 的 viewDidUnload
方法被调用,因此 View 被卸载,我得到一个很棒的黑屏(有顶部的导航栏)。
我正在 iOS 4.3.3 上使用 iPad 1 进行测试。
有什么建议吗?
最佳答案
据我了解,viewDidUnload
方法由 UIViewController
(父类(super class))中的 didRecieveMemoryWarning
函数调用。基本上 iOS 会给你几个警告,并希望看到你的内存使用率下降。如果您继续忽略这些,操作系统将终止您的应用程序。
不过,有时保持某些 View 正常运行至关重要,因此我解决此问题的方法是简单地重写 didRecieveMemoryWarning
方法并在其中不执行任何操作。
或者更好的是,检查 self
是否是 self.navigationController.visibleViewController
中的当前 View ,如果是,则不要将内存警告调用传递给[super didRecieveMemoryWarning]
。
如果您持有图像缓存或其他东西,只需清空它们即可。
HTH
关于ios - 为什么我的 UIViewController View 在可见时被卸载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11775072/