如何在滚动期间保留uitextfield的值

时间:2013-10-29 00:48:34

标签: ios cocoa-touch uitableview

我在tableview中使用dequeue机制时遇到了麻烦,我有一个带有uiTextField的自定义单元格。 当在其上放置一些值并进行滚动时,TextField的值将转到另一个单元格。 有人可以帮我吗? 多谢你们。 这是代码:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
  static NSString *CellIdentifier = @"MyPedidoItemCell";

  PedidoItemCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

  // Configure the cell...
  if (!cell) {
    cell = [[PedidoItemCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
  }

  Produto *produto = [self.fetchedResultsController objectAtIndexPath:indexPath];

  cell.lblNome.text   = produto.nome;
  cell.lblCodigo.text = produto.codigo;
  cell.lblFuncao.text = produto.funcao;
  return cell;
}

2 个答案:

答案 0 :(得分:0)

您展示的代码是使用CoreData为单元格加载数据,但您提到您不会将数据存储在任何位置。

我怀疑你的对象没有fetchedResultsController的数据,因为你没有存储任何数据。

很可能produto为零,你没有在单元格上设置任何值。

最终手动更新的单元格会被重复使用,您会再次看到该文本。

您需要先将您键入的数据存储到UITextField中,然后才能从核心数据中检索它。

答案 1 :(得分:0)

当您调用dequeueReusableCellWithIdentifier时,它可能会返回一个已滚出视图但仍包含UITextField中的数据的单元格。如果您没有清除UITextField的内容或将其设置为该行的正确值,您可能会看到不需要的数据。