在UITableViewCell中为UITextField保存值的问题

时间:2014-03-29 04:34:09

标签: ios uitableview uitextfield

我有一个带有6个相同单元格的UITableView。在单元格中是UITextFields,用户可以在其中键入自己喜欢的电视节目。我已经找到了一种方法来记录下面列出的代码这些值,但我有一个主要问题,即如果用户在其中一个字段中输入值,完成编辑,但然后点击该字段并更改值。我想只为每个单元格记录一个值。使用当前方式保存值,如果用户输入值,完成编辑该文本字段然后更改信息,它将记录这两个值,而不仅仅是最后一个值。

以下是一个示例:用户输入他们的第一个收藏夹Elementary,然后继续填写接下来的五个单元格。然后他们决定返回并将他们在第一个单元格中的第一个选择更改为True Detective。当用户单击完成时,它应该保存True Detective,然后保存其余值。按照我目前设置的方式,它将保存Elementary,True Detective以及其余的值。我该如何解决这个问题。

我目前使用的代码:

- (void) textFieldDidEndEditing:(UITextField *)textField {
    NSString *nameString = [[NSString alloc] init];
    nameString = textField.text;
    [self.favoriteShows addObject:nameString];
}

2 个答案:

答案 0 :(得分:1)

不是在textFieldDidEndEditing方法中添加字符串,而是在完成按钮的点击方法中添加字符串。

您可以在完成按钮的方法中尝试以下步骤:

  • 遍历tableViewCell s,按cellForRowAtIndexPath获取单元格。

  • 要获取textField的引用,请使用[cell viewWithTag:yourtag];

  • 然后按[self.favoriteShows addObject:textField.text];

  • 添加文字

这样,只会记录最终值,这些值在用户按下完成按钮时出现在textField s中。希望这会有所帮助。

答案 1 :(得分:0)

nameString = [textField.text copy];