gpt4 book ai didi

ios - 如何在 UINavigationController 堆栈中使用 didReceiveMemoryWarning

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:09:26 24 4
gpt4 key购买 nike

我的应用程序在堆栈中有多个 UIViewController(在 UINavigationController 下)。在某些情况下,当我在内部 UIViewControllers 中时会收到内存警告(大多数情况下,如果设备因后台运行的其他应用程序而过载)。当这些内存警告发生时,应用程序继续运行(大部分时间),然后当它返回到 rootViewController 时它会重新加载它但不会填充 View 对象(主要是 UIButton 图像)。

我想实现 didReceiveMemoryWarningapplicationDidReceiveMemoryWarning,但我不清楚如何实现。

我正在寻找的最终结果是,当应用程序在内存警告后执行此“重新加载”时,它将“重新加载” rootViewController 与用户开始“潜水”之前相同的状态进入内部 UIViewControllers。

  • 我应该如何实现?
  • 我应该在每个 UIViewController 中实现默认的 didReceiveMemoryWarning 吗?
  • 由于内存警告总是发生在内部 UIViewController 中,我应该如何让 rootViewController 知道它应该运行 didReceiveMemoryWarning
  • 如何告诉 rootViewController 它应该执行哪些设置?换句话说 - 我能否将设置保留在 didReceiveMemoryWarning 不会删除它们的地方,并在激活 didReceiveMemoryWarning 时“调用”它们,以便用户看到与他们启动时相同的屏幕“级别导航”来自?

最佳答案

UINavigationController 堆栈上的任何不可见 View Controller 都将转储其 View 。它还会向您发送警告。如果 View Controller 持有大量数据结构,则应尽可能转储它们。

根(另一个) Controller 应该适本地处理 viewDidUnload 并能够循环通过另一个 loadView/viewDidLoad 阶段。

如果您希望状态相同,则需要持久化所有这些信息。 NSUserDefaults 是执行此操作的标准位置。

关于ios - 如何在 UINavigationController 堆栈中使用 didReceiveMemoryWarning,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6718854/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com