0

我将解释我的场景:我有一个自定义类,其属性旨在获取用户通过表单提供的信息。这是自定义类:

@interface CustomClass : NSObject

@property NSInteger iD;
@property (strong, nonatomic) NSString *profilePicUrl;
@property (strong, nonatomic) NSString *email;
@property (strong, nonatomic) NSString *firstName;
@property (strong, nonatomic) NSString *lastName;
@property (strong, nonatomic) NSString *address; 
@property NSInteger zipCode;
@property (strong, nonatomic) NSMutableArray *products;
@property BOOL isEnabled;

@end

该表单由三个带有 的视图组成UITableView,它们各自的视图控制器位于UINavigationController. 这样,它就像一个多步骤表单:有一个请求用户输入的第一个视图,然后导航到请求用户输入的第二个视图,然后在提交提供的数据之前导航到显示信息的第三个视图。导航栏的“后退”按钮已启用,因此用户可以返回上一步来完成/更改他们的输入。

表格的单元格有不同的类型,对应于我描述的自定义类的属性:其中一些有一个文本字段(例如用于输入名字和姓氏的单元格),另一些有一个开关(“isEnabled”属性),并且我有一个带有按钮的单元格,该按钮显示一个UIImagePickerController用于拍照的按钮(用于个人资料图片的单元格)。

我想创建一个我的实例CustomClass并在表单的第三步完成其数据以提交它。部分信息在第一个视图中请求(个人资料图片、电子邮件、名字和姓氏),其余部分在第二个视图中请求(地址、邮政编码、产品),所以我需要传递CustomClass对象通过导航层次结构的三个视图控制器。

我的问题是:当用户输入它们时,我应该如何管理单元格中值的持久性?CustomClass我应该以某种方式将属性“绑定”到每个相应的单元格吗?我希望用户能够在表单中前进和后退并保留她已经输入的数据。看起来我在文本字段中键入的值被保留了,如果我从第一个视图导航到第二个视图,然后我再次返回到第一个视图,文本字段值将被保留,但其他单元格的内容不会被保留。如果应用程序突然终止并且我不希望用户再次输入所有信息怎么办?注意:我的应用必须支持 iOS 5。

管理这种情况的最佳方法应该是什么?谢谢!

4

1 回答 1

0

您必须将信息保留在CustomClass. 您可以通过将其写入纯文本文件、属性列表或使用数据库,甚至使用NSUserDefaults基础设施来做到这一点。

只要输入了数据,就应该立即进行保存,例如 intextField:didEndEditing和此类回调。您将更新CustomClass对象的属性,然后将其持久化。

于 2013-07-16T15:17:25.973 回答