【问题标题】:iPhone app: recover view after didReceiveMemoryWarningiPhone 应用程序:在 didReceiveMemoryWarning 之后恢复视图
【发布时间】:2009-10-07 06:05:50
【问题描述】:

有问题的应用有一个MainView->ModalView 对。 ModalView 通过UIModalTransitionStyleFlipHorizontal 显示。在didReceiveMemoryWarning 的情况下,MainView 被转储(因为它不可见)并且应用程序保持“活动”,但是当您向后翻转时,屏幕是空白的(因为模态对话框正在返回一个现已解除分配的视图)。动画过渡结束后,重新生成MainView,一切正常。

我只是想在从ModalView 返回之前以某种方式重新生成MainView(以防出现内存警告)。

这是个好主意吗?就警告而言,我做错了吗?

谢谢

【问题讨论】:

    标签: iphone memory-management uiview uiviewcontroller


    【解决方案1】:

    您可能想在开始翻转之前尝试重新加载 MainView,这样就没有等待的空白屏幕了。这确实意味着你的翻转会被延迟,但也许这样会更好?

    如果您想在前往 MainView 之前重新加载它,请尝试像这样访问 MainView

    if (MainView)
        ....
    

    如果 MainView 是视图或类似的视图

    if (MainView.view)
        .....
    

    如果 MainView 是视图控制器。视图访问的作用是强制从 NIB 或 loadView 重新加载该视图。

    【讨论】:

    • 感谢您的回答。由于它是一个模态对话框,我尝试了if (self.parentViewController.view);,然后我必须将代码翻转回来。它不会重新生成视图。
    • 我不确定这是否是相同的观点。你有你的代码,所以你知道得更好。你试过只使用 if (MainView) 吗?
    • 好吧,我假设我应该要求的视图是曾经称为模态视图的视图,对吧? self.parentViewController.view 会指向那里吗?
    • self.parentViewController.view 自发布以来可以为零吗?在返回 MainView 之前使用 NSLog 检查。
    【解决方案2】:

    您还可以通过注释掉 DidReceiveMemoryWarning 中的部分来选择忽略内存警告 - 但风险自负:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多