Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/114.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 具有表的视图层次结构中单元格值的持久性_Ios_Uitableview_Uinavigationcontroller_Persistence - Fatal编程技术网

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:
方法中设置,以设置单元格中的值?