我的应用程序在导航控制器下有多个UIViewControllers。在某些情况下,当我在内部UIViewControllers中时会收到内存警告(大多发生在设备过载的情况下,其他应用程序在后台运行)。当这些内存警告发生时,应用程序继续运行(大多数情况下),然后当它回到
我希望实现
我想要的最终结果是,当应用程序在内存警告后进行“重新加载”时,它将以与用户开始“深入”内部UIViewControllers之前相同的状态“重新加载”
问题如下:
rootViewController
时重新加载它,但不填充视图对象(主要是UIButton图像)。我希望实现
didReceiveMemoryWarning
和applicationDidReceiveMemoryWarning
,但我不清楚如何做到这一点。我想要的最终结果是,当应用程序在内存警告后进行“重新加载”时,它将以与用户开始“深入”内部UIViewControllers之前相同的状态“重新加载”
rootViewController
。问题如下:
- 我应该如何实现?
- 我应该在每个UIViewController中实现默认的
didReceiveMemoryWarning
吗? - 由于内存警告总是发生在内部UIViewControllers中,我应该如何让
rootViewController
知道它应该运行didReceiveMemoryWarning
? - 我如何告诉
rootViewController
应该进行哪些设置?换句话说,我可以在didReceiveMemoryWarning
不删除它们的地方保留设置,并在激活didReceiveMemoryWarning
时“调用”它们,以便用户将看到他们从“级别导航”开始的相同屏幕吗?
didReceive…
中调用loadView
,你永远不应该调用loadView
,只需实现它。根视图控制器只是堆栈中的另一个视图控制器。NSUserDefaults
存储诸如表视图滚动到何处以及/或其选择等内容。当您收到viewDidLoad
时,可以重置该状态。 - bshirley