2011-07-21 17 views
5

Estoy desarrollando una aplicación y en algún momento tengo varios uitableview. Quiero saber fuera de los métodos delegados, una acción, por ejemplo, si las tablas tienen una celda seleccionada y cuál.cómo saber si uitableview tiene una celda seleccionada

I tratado de usar: (NSIndexPath *)indexPathForSelectedRow pero no funciona, porque si no tengo una celda seleccionada [(NSIndexPath *) row] las declaraciones de "0" y no nula

podría por favor dar ninguna ayuda ??

gracias ..

+0

Puede guardar el índice de la fila seleccionada en un ivar. – dasdom

+0

Sí, eso es una idea. Ya tengo un NSMUtablearray que almacena la celda seleccionada. Como no puedo reemplazar un objeto nil en NSMUtablearray, no puedo iniciar el índice "i" en cero. Así que el problema es saber si una tabla vista determinada tiene una celda seleccionada. me hice claro? gracias – Frade

Respuesta

20

Su método es correcto - indexPathForSelectedRow de hecho devuelve nil si no se selecciona ninguna célula. Pero si intenta enviar un mensaje a un objeto nulo y utilizar el valor devuelto será 0, por lo que necesita para poner a prueba si el valor de ruta es nula o no antes de intentar conseguir la fila de células de ella:

NSIndexPath *path = [table indexPathForSelectedRow]; 
if (path){ 
    row = [path row]; 
    ... 
} 
else{ 
// No cell selected 
} 

P. S. nil es solo un 0 encasillado, por lo que en la práctica son lo mismo.

Cuestiones relacionadas