Ios 具有表的视图层次结构中单元格值的持久性
我将解释我的场景:我有一个自定义类,其属性旨在通过表单获取用户提供的信息。这是自定义类:Ios 具有表的视图层次结构中单元格值的持久性,ios,uitableview,uinavigationcontroller,persistence,Ios,Uitableview,Uinavigationcontroller,Persistence,我将解释我的场景:我有一个自定义类,其属性旨在通过表单获取用户提供的信息。这是自定义类: @interface CustomClass : NSObject @property NSInteger iD; @property (strong, nonatomic) NSString *profilePicUrl; @property (strong, nonatomic) NSString *email; @property (strong, nonatomic) NSString *firs
@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
管理这种情况的最佳方法应该是什么?谢谢 您必须在
CustomClass
中保存信息。您可以通过将其写入纯文本文件、属性列表或使用数据库,甚至使用NSUserDefaults
基础结构来实现这一点
无论何时输入数据,都应立即进行保存,例如在
textField:didEndEditing
和此类回调中。您需要更新CustomClass
对象的属性,然后将其持久化。我是否应该检查CustomClass
对象属性是否在cellforrowatinexpath:
方法中设置,以设置单元格中的值?