我正在开发一个有很多视图控制器的项目。假设它们是: A - > B - > C - > D - > E - > F - > G - > H.他们每个人都有一个后退和下一个按钮,可以切换到另一个视图,并有许多文本字段。
我在每个文本字段中输入了文本。从H视图,我可以通过popviewcontroller返回到先前的视图并查看键入的数据。但是当我再次点击下一个按钮时,视图上的所有数据都丢失了。我需要在不丢失数据的情况下连续/下一次连续。我怎么能这样做?
答案 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)