iPhone:为什么在模拟内存警告后屏幕变成空白?

时间:2011-06-01 01:41:10

标签: iphone objective-c

当我在模拟器上运行我的应用程序时,我转到硬件 - >模拟内存警告它导致我的视​​图变为空白(我只看到白色)。有谁知道我怎么能不这样做? - 我不希望实际的内存警告使我的屏幕空白。

由于

3 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。我有一个应用程序,您可以在其中显示一个登录屏幕,该屏幕在NavController下推送主菜单。然后,主菜单中的每个选项都会推送一个新的视图控制器。如果在菜单项下出现内存警告,返回菜单会显示空白视图。

这可能更多地掩盖了症状而不是解决问题,但是通过覆盖我的主菜单的didReceiveMemoryWarning消息与空的消息(以便不调用超级版本)停止视图消失。

我比覆盖setView(推荐here)更喜欢这个,因为你没有得到关于“-viewDidUnload导致视图重新加载的令人讨厌的性能警告。”

答案 1 :(得分:0)

我现在遇到了同样的问题,我解决了这个问题。

在我的情况下,我在mainViewController的代码中输入了这些代码:

- (void)loadView {
    [super loadView];
}

模拟内存后警告系统调用didReceiveMemoryWarning并且您可以检查后立即调用viewDidUnload,如果在代码中使用loadView,则类会调用它来重新加载替换旧视图的全新页面。 这会导致黑屏。

所以为了解决这个问题,我刚评论了上面的三行。

答案 2 :(得分:-1)

bah,主要是因为我错误地设置了导航控制器