2011-07-21 2 views
5

Zajmuję się tworzeniem aplikacji iw pewnym momencie mam kilka uitableview. Chcę wiedzieć poza metodami delegatów, akcja na przykład, jeśli widoki tabeli mają wybraną komórkę i która z nich.jak sprawdzić, czy uitableview ma wybraną komórkę

Próbowałem użyć: (NSIndexPath *)indexPathForSelectedRow ale to nie działa, bo jeśli nie mam wybranej komórce [(NSIndexPath *) row] powroty „0”, a nie zero

mógłbyś dać żadnej pomocy ??

Dzięki ..

+0

Można zapisać indeks wybranego wiersza w pliku ivar. – dasdom

+0

Tak, to jest pomysł. Mam już NSMUtablebarray, który przechowuje wybraną komórkę. Ponieważ nie mogę zastąpić obiektu zerowego w NSMUtablearray, nie mogę zainicjować indeksu "i" na zero. Problem polega na tym, aby wiedzieć, czy określony widok tabeli ma wybraną komórkę. wyraziłem się jasno? dzięki – Frade

Odpowiedz

20

Twoja metoda jest poprawna - indexPathForSelectedRow rzeczywiście zwraca zero, jeśli nie wybrano komórki. Ale jeśli spróbujesz wysłać wiadomość do zera przedmiotu i używać zwrócona wartość będzie wynosić 0, więc trzeba sprawdzić, czy wartość ścieżka jest zerowa lub dopiero próbuje wiersz komórki od niego:

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

PS: zero jest po prostu typograficznym 0, więc w praktyce są one tym samym.