Tengo un UITableView con aproximadamente 20 celdas, en cada celda hay tres UITextFields. NO subclasé UITableViewCell, pero al configurar cada celda configuré el valor de la etiqueta de los campos de texto en una constante más el número de fila. Entonces, para cada fila, la etiqueta del campo de texto se incrementa en uno.UITextFields en UITableView, los valores ingresados reaparecen en otras celdas
Cuando ejecuto la aplicación e ingreso un valor en, por ejemplo, la fila uno, puede reaparecer en la fila 12. El comportamiento no es el mismo cada vez que ejecuto la aplicación.
Debo agregar que tengo una matriz que almacena los contenidos ingresados en cada campo de texto. Cuando se edita un campo de texto, guardo el nuevo valor en la matriz y cuando la tabla vuelve a ser solicitada por la tabla, configuro el valor de los campos de texto como almacenados en la matriz.
¿Tiene esto algo que ver con reutilizar UITableViewCells? Al reutilizar una celda, ¿pueden los campos de texto en filas diferentes obtener los mismos números de etiqueta? Digamos, por ejemplo, que la primera celda (etiqueta de campo de texto = 1001) se reutiliza en la fila 12, luego tenemos dos campos de texto con el mismo número de etiqueta. Si luego ingreso un valor en la fila 1 y luego cargo la fila 12, el valor de la celda uno se cargará desde la matriz y también se colocará en la fila 12.
Si esto está sucediendo, ¿cómo lo arreglo? Cada célula no tiene una referencia al campo de texto, por lo que no creo que pueda editar el valor de etiqueta de un campo de texto con sólo tener acceso a la celda que está en
EDIT:.
Aquí es el código para UITableView: cellForRowAtIndexPath:
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
//Modify cell, adding textfield with row-unique index value
cell = [self modifyCellForHoleInfo:cell atIndexPath:indexPath];
}
cell.accessoryType = UITableViewCellAccessoryNone;
// Load value for textfield stored in dataArray
((UITextField *)[cell viewWithTag:1000+indexPath.row]).text = [dataArray objectAtIndex:indexPath.row];
¡Gracias!
¿Puedes mostrar el código de 'tableView: cellForRowAtIndexPath'? No creo que valga la pena tener etiquetas dependiendo de la fila. – notnoop