如何在记忆警告后保留导航历史记录?

时间:2011-08-30 15:32:32

标签: ios three20

在我的应用程序中,我有一个viewcontroller,它会抛出一个产生UIImagePickerController的{​​{1}}。经过多次研究,我没有找到防止这种警告的解决方案。

问题是:当我的应用收到memory warning时导航历史似乎丢失,当用户按下后退按钮时,我的应用启动第一个控制器。 (就像我的应用程序启动时一样)

如何在memory warning之后保留导航历史记录? 或者更好的方法是如何使用memory warning删除此memory warning? (我在stackoverflow.com和google.com上尝试了很多解决方案)

另一个解决方案是阻止UIImagePickerController释放控制器的所有数据。

1 个答案:

答案 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中定义。希望有所帮助。