从自定义UITableViewCell保存数据

时间:2011-05-30 07:08:04

标签: ios uitableview uitextfield

  1. 我有一个编辑屏幕,它由一个巨大的UITableView组成。

    1. 表格中的每个单元格都是自定义UITableViewCell,包含UITextField

    2. 我可以加载表格,滚动并输入信息。但是,在滚动期间,表格单元格会丢失输入的数据,我理解为什么会发生这种情况。

    3. 我意识到我需要在用户使用textFieldDidEndEditing方法输入数据后立即保存数据。

  2. 问题:我想存储在ViewController中提供的自定义对象中输入的数据 - 如何从UITableViewCell访问此对象?另外,如何识别表格单元格的行和位置,以便根据位置填充对象中的特定属性

    问题:我这样做是对的吗?或者有更好的方法吗?

1 个答案:

答案 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];
}

这将是基本的想法。从可变数组的空字符串开始,每次更新文本字段时通过用新文本替换原始文本来修改它们。希望这会有所帮助。