我的应用程序中发生了间歇性错误,我终于可以通过在某种情况下模拟内存警告来始终如一地重现它。这是设置。
Nav controller
(as tab inside --> Modal Controller 1 --> Modal Controller 2
Tab Controller)
如果我在屏幕上显示模态控制器2时模拟内存警告,则模态控制器1将被关闭,底部导航控制器将一直弹回到其根目录。这正是报告的错误中发生的事情。
如果用户然后按下MC2中的“完成”按钮,它将调用MC1中的委托方法,该方法崩溃,因为内存警告导致MC1被卸载并解除了锁定。
我的应用程序中还有其他地方,我的导航控制器显示模态视图控制器链,但触发内存警告只会导致我的应用程序的某个特定区域出现此问题。
有什么可能导致这种行为吗?我没有特定的代码示例,因为我不确定导致问题的代码是什么。我会感激任何指点。
答案 0 :(得分:1)
当发生内存警告时,iOS可能会释放任何不可见的视图,包括MC1的视图(但不包括MC1本身)。您需要在MC1中实现以下内容。
或者,您可能需要考虑以下黑客攻击。 UIViewController prevent view from unloading