UIImagePickerController释放我的视图和控制器
我的应用程序中有5个选项卡,第五个选项卡是设置选项卡(UINavigationController里面),其中一个选项是用户可以编辑个人信息并选择个人资料图片的位置。
在启动UIImagePickerController(相机模式)并按下取消(我甚至没有谈论拍摄照片)后,所有内容都会返回到原始状态,所有视图和控制器都将在iOS上发布并重新创建。 用户在设置中更新并且未保存的所有内容都消失了。
如何避免这种情况?
注意:我正在使用UIImagePickerController的单例实例,在Instruments中找不到任何泄漏。 当我启动选取器时,“接收到的记忆警告。等级= 1”不断出现。
你会成为一个拯救生命的人 - 谢谢!
- 编辑 -
找到了:
我使用的是自定义选项卡栏(UIView),所以在设置中我从该自定义选项卡栏控制器(这是应用程序中的主要部分)呈现UIImagePickerController模式(否则,选择器会在其下面)。
我重建了标签栏,所以现在自定义视图只是一个标准UITabBar上的子视图,现在我正在调用[self presentModalViewController:imagePickerController animated:YES]; 在我的应用程序设置中,它工作得很好。
所以,结论是,当您从另一个控制器呈现图像时,图像选取器会奇怪地起作用,而不是来自“自我”。
听起来你没有正确处理内存警告。 在模拟器中,您可以选择“模拟内存警告”来模拟发生的情况。
-[UIViewController didReceiveMemoryWarning]
如果视图没有超级视图, -[UIViewController didReceiveMemoryWarning]
会释放视图。 有三种简单的方法来处理这个问题:
-didReceiveMemoryWarning
什么也不做。 -viewDidDisappear:
,在视图被卸载之前应始终调用它(除非视图从未出现在第一位)。 您可能还想考虑一下如果您的应用程序被隐藏并死亡,会发生什么情况......
你可以做的是为所有字段创建变量,并将用户字段的内容写入这些变量,然后在获取或取消图像时,将所有这些字段写回并释放变量。 基本上你暂时保存所有的字段,然后恢复它们。
链接地址: http://www.djcxy.com/p/68373.html上一篇: UIImagePickerController releases my views and controllers
下一篇: Is it possible to know when is constexpr really a constexpr?