如何在iOS中多次保存并再次加载视图上的数据

时间:2015-03-20 10:49:47

标签: ios

我正在开发一个有很多视图控制器的项目。假设它们是: A - > B - > C - > D - > E - > F - > G - > H.他们每个人都有一个后退和下一个按钮,可以切换到另一个视图,并有许多文本字段。

我在每个文本字段中输入了文本。从H视图,我可以通过popviewcontroller返回到先前的视图并查看键入的数据。但是当我再次点击下一个按钮时,视图上的所有数据都丢失了。我需要在不丢失数据的情况下连续/下一次连续。我怎么能这样做?

3 个答案:

答案 0 :(得分:1)

创建一个Singleton类。

在Singleton类中为Form *form;添加属性 如果您启动第一个ViewController,则创建一个新表单

[Singleton sharedInstance].form = [[Form alloc] init];

在TextField

中保留第一个ViewController set属性
[Singleton sharedInstance].form.name = textField.text

离开第二个ViewController设置属性

[Singleton sharedInstance].form.mail = textField.text

在viewWillAppear方法中的每个ViewController中设置存储文本

self.textField.text = [Singleton sharedInstance].form.name

self.textField.text = [Singleton sharedInstance].form.mail

这是一个简单的例子,但希望它有助于理解要做什么:)

答案 1 :(得分:0)

如何使用NSMutableDictionary将每个视图控制器的模型保持为键值对。每个View Controller都使用此NSMutableDictionary

初始化
- (id) initWithDataDictionary:(NSMutableDictionary *)aDataDictionary
{
  self = [super init];

  _myDataModel = (MyDataModel*)[aDictionary valueForKey:@"MyKeyName"];

  if(_myDataModel == nil)
  {
    _myDataModel = [MyDataModel alloc] init];
    aDataDictionary setValue:_myDataModel forKey:@"MyKeyName"];
  }
  return self;
}

- (void) viewDidLoad
{
 [super viewDidLoad];

 [self displayData];
}

- (void) displayData
{
  self.text1.text = _myDataModel.name;
}

您还可以保留一个键值对,以便将焦点设置为最后一个聚焦文本字段。

答案 2 :(得分:0)

我在这里看到两个选项:

  • 如果你使用故事板unwind,segues是非常好的选择。
  • 否则,您可以创建自己的delegate