我正在开发一个应用程序来浏览在线照片,有时会收到内存警告(级别1),之后,如果我回到最后一个UIViewController(在NavigationControll中),我发现一些自定义UIView丢失了,我不能让他们回来,但我可以创建新的这样的UIView
有人知道这个问题吗?
答案 0 :(得分:3)
内存警告提示操作系统转储任何不需要的视图。如果在IB中创建它们,或者在视图控制器中的viewDidLoad或loadView方法中创建它们,则在重新加载视图时将重新创建它们。你也可以让你的视图控制器专门保留它们,但是这会比只需要它们时重新创建它们有更大的内存空间。
我应该说,只有在你不使用nib创建视图时才会调用loadView,因此viewDidLoad可能就是你要放置它们的地方。
答案 1 :(得分:1)
这是预期的行为。你可以覆盖didReceiveMemoryWarning
(即什么都不做,不要超级调用);但你真正想要的是正确处理这些情况,即在必要时再次设置视图。