1

我在使用 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;
}
4

2 回答 2

0

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

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

所以很可能produto是 nil 并且您没有在单元格上设置任何值。

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

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

于 2013-10-29T01:20:34.030 回答
0

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

于 2013-10-29T02:05:42.923 回答