我有一个编辑屏幕,它由一个巨大的UITableView组成。
表格中的每个单元格都是自定义UITableViewCell
,包含UITextField
我可以加载表格,滚动并输入信息。但是,在滚动期间,表格单元格会丢失输入的数据,我理解为什么会发生这种情况。
我意识到我需要在用户使用textFieldDidEndEditing
方法输入数据后立即保存数据。
问题:我想存储在ViewController
中提供的自定义对象中输入的数据 - 如何从UITableViewCell
访问此对象?另外,如何识别表格单元格的行和位置,以便根据位置填充对象中的特定属性
问题:我这样做是对的吗?或者有更好的方法吗?
答案 0 :(得分:1)
由于您只提到一个文本字段,我们可以使用包含每个单元格字符串的NSMutableArray对象。您必须使用空字符串填充数组并使用此信息填充文本字段。它会像,
textField.text = [textFieldStrings objectAtIndex:indexPath.row];
由于您是在视图控制器中以编程方式执行的,因此您必须将视图控制器设置为文本视图委托。你可以做到
- (void)textFieldDidEndEditing:(UITextField *)textField {
UITableViewCell *cell = (UITableViewCell*)textField.superview;
NSIndexPath *indexPath = [self.tableView indexPathForCell:cell];
... Since you've the index path, you can map it to an array.
[textFieldStrings replaceObjectAtIndexPath:indexPath withObject:textField.text];
}
这将是基本的想法。从可变数组的空字符串开始,每次更新文本字段时通过用新文本替换原始文本来修改它们。希望这会有所帮助。