重新加载时保持视图状态

我正在开发一个iPad应用程序,基本上是一系列用户指令来模仿真实生活的系统testing,如果组件失败(指出需要解决的问题),可以在每个视图上进行修改。

我遇到的问题是,视图的默认行为似乎是,当我通过层次结构前进时,它保留每个视图的状态,但是如果我再次前进,然后再向前移动,将会重置屏幕。

我想要做的是让每个视图保存其状态,而不pipe用户如何离开该屏幕,以便他们可以确信,即使他们需要返回到前一步骤,他们的工作仍然保留。

有没有办法做到这一点? 还是我需要从根本上重新考虑我的devise?

您需要为您的视图模型对象。 这些可以像字典一样简单,或作为每个视图的自定义类参与。

每个视图的控制器必须在视图closures之前通过其界面更新其关联的模型。 当它重新出现时,VC将用来自模型的信息更新显示。

这遵循模型 – 视图 – 控制器的主要cocoa范例(另见: cocoadevise模式 ); 您的视图显示信息,模型存储信息,以及控制器在两者之​​间进行调解和转换。

如何从视图更新模型在很大程度上取决于模型的devise。 这是一个可能有用也可能不有用的模型。 所有名为xField的东西都是UITextField的出口。

 // When the view is taken off screen - (void) viewWillDisappear { // Assume that when created, view controller is given a pointer // to the relevant model object (probably by the previous view // controller) [model setNameOfHorse:[[self horseNameField] text]]; NSUInteger newBetValue; newBetValue = [[dollarValueFormatter numberFromString:[[self betField] text]] unsignedIntegerValue]; [model setBet:newBetValue]; [model setNote:[[self noteField] text]; }