2009-03-19 24 views
45

Tengo una pregunta: ¿cómo puedo obtener una serie de filas seleccionadas en una tabla? Lo estoy asignando manualmente a una variable. El problema es que si una fila se deseleccionó, mi variable aún conserva el valor anterior.UITableView: ¿qué fila fue seleccionada?

¿Qué puedo hacer al respecto? ¿Hay algún método en UITableView que devuelva un número de una fila actualmente seleccionada?

Gracias de antemano, Ilya.

Respuesta

109

Si no ha implementado un delegado (ver nduplessis), UITableView también ofrece:

- (NSIndexPath *)indexPathForSelectedRow 
+0

Gracias, Jarret, que es lo que necesitaba Ahora todo está funcionando perfectamente. –

+10

Y para cualquiera que busque la versión de selección múltiple, es '- (NSArray *) indexPathsForSelectedRows' –

+1

El problema con este método es que cada vez que se llama, incluso cuando el usuario no ha seleccionado nada, devuelve 0. – redDragonzz

36

El UITableViewDelegate llamará

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 

cuando se selecciona una fila. De esto se puede determinar fácilmente mediante el uso de la fila indexPath.section y indexPath.row

Cuestiones relacionadas