我的应用程序中有5个选项卡,第五个选项卡是“设置”选项卡,(内部是UINavigationController),其中一个选项是用户可以编辑个人信息并选择个人资料图片。
在触发UIImagePickerController(相机模式)并按下取消(我甚至不是在谈论拍照)之后,所有内容都返回到原始状态,第一个选项卡,所有视图和控制器都被iOS发布并重新创建。用户在设置中更新但未保存的所有内容都已消失。
怎么可能避免这种情况?
注意:我正在使用UIImagePickerController的单例实例,没有发现Instruments的泄漏。当我开火时,“接收到内存警告。等级= 1”会不断出现。
你将成为一名救生员 - 谢谢!
- 编辑 -
找到它:
我正在使用自定义标签栏(UIView),因此在设置中我从该自定义标签栏控制器(它是应用程序中的主要部分)呈现UIImagePickerController模式(否则选择器将位于其下方)。
我重建了标签栏,所以现在自定义视图只是标准UITabBar上的子视图,现在我正在调用[self presentModalViewController:imagePickerController animated:YES];在我的应用程序设置中,它工作得很好。
因此,结论是当你从另一个控制器而不是“自我”中呈现它时,图像选择器会很奇怪。
答案 0 :(得分:0)
您可以做的是为所有字段创建变量,并将用户字段的内容写入这些变量,然后在拍摄或取消图像时,将所有这些字段写回并释放变量。基本上你暂时保存所有字段,然后恢复它们。
答案 1 :(得分:0)
听起来你没有正确处理内存警告。在模拟器中,您可以选择“模拟内存警告”来模拟发生的情况。
长篇故事是-[UIViewController didReceiveMemoryWarning]
如果视图没有超视图,则会释放其视图。有三种简单的方法可以解决这个问题:
-didReceiveMemoryWarning
无所事事。-viewDidDisappear:
中保存状态,在视图卸载之前应始终调用该状态(除非视图从未出现在第一位)。您可能还想考虑一下如果您的应用已落后并被杀死会发生什么......