gpt4 book ai didi

iphone - 模态视图 Controller 因内存警告而被解雇?

转载 作者:行者123 更新时间:2023-11-29 04:49:23 25 4
gpt4 key购买 nike

我的应用程序中发生了一个间歇性错误,我终于能够通过模拟特定场景中的内存警告来一致地重现它。这是设置。

 Nav controller
(as tab inside --> Modal Controller 1 --> Modal Controller 2
Tab Controller)

如果我在屏幕上显示模态 Controller 2 时模拟内存警告,则模态 Controller 1 将被关闭,并且底部导航 Controller 会一直弹出到其根目录。这正是所报告的错误中发生的情况。

如果用户随后按下 MC2 中的“完成”按钮,则会调用 MC1 中的委托(delegate)方法,该方法会崩溃,因为内存警告导致 MC1 被卸载并释放。

在我的应用程序中的其他地方,我有导航 Controller 呈现模态视图 Controller 链,但触发内存警告只会在我的应用程序的一个特定区域中导致此问题。

有什么可能导致此行为吗?我没有具体的代码示例,因为我不确定是什么代码导致了问题。如果有任何指点,我将不胜感激。

最佳答案

当发生内存警告时,iOS 可能会释放任何不可见的 View ,包括您的情况下的 MC1 View (但不是 MC1 本身)。您需要在 MC1 中实现以下内容。

  • 在 viewDidUnload 中或显示 MC2 之前,记住当前状态。
  • 在 viewDidLoad 中,恢复旧状态(如果有)。
  • 在委托(delegate)方法中,调用[self view]来加载已释放的 View 。

或者,您可能需要考虑以下技巧。 UIViewController prevent view from unloading

关于iphone - 模态视图 Controller 因内存警告而被解雇?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9121154/

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