在我的应用程序中,我有一个viewcontroller,它会抛出一个产生UIImagePickerController
的{{1}}。经过多次研究,我没有找到防止这种警告的解决方案。
问题是:当我的应用收到memory warning
时导航历史似乎丢失,当用户按下后退按钮时,我的应用启动第一个控制器。 (就像我的应用程序启动时一样)
如何在memory warning
之后保留导航历史记录?
或者更好的方法是如何使用memory warning
删除此memory warning
? (我在stackoverflow.com和google.com上尝试了很多解决方案)
另一个解决方案是阻止UIImagePickerController
释放控制器的所有数据。
答案 0 :(得分:0)
我无法在不查看代码的情况下帮助您处理内存警告,但似乎TTNavigator会将您发送回堆栈中的第一个视图控制器,因为它无法保留其他视图控制器。
你是继承自TTViewController吗?如果没有,你应该尝试。其次,如果从TTViewController继承后仍然遇到问题,请查看在视图控制器中实现以下方法:
- (BOOL)persistView:(NSMutableDictionary*)state {
// Save important state information into the state dictionary
// provided to you and return yes to tell TTNavigator to persist
// this view controller
return YES;
}
- (void)restoreView:(NSDictionary*)state {
// Read the values you saved in state and restore your view
// controller's state
}
这些方法在Three20UI项目的UIViewControllerAdditions.h中定义。希望有所帮助。