Mam UITabBarController z więcej niż 5 UITabBarItems, więc moreNavigationController jest dostępny.Jak uzyskać tekst komórki na podstawie indeksu IndexPath?
W moim UITabBarController Delegata I wykonaj następujące czynności:
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
//do some stuff
//...
UITableView *moreView = (UITableView *)self.tabBarController.moreNavigationController.topViewController.view;
moreView.delegate = self;
}
Chcę zaimplementować UITableViewDelegate więc mogę uchwycić wiersz, który został wybrany, należy ustawić właściwość widok niestandardowy, a następnie wcisnąć przycisk sterowania wyświetlania:
- (void)tableView:(UITableView *)tblView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
//how can I get the text of the cell here?
}
Potrzebuję uzyskać tekst komórki, gdy użytkownik dotknie wiersz. Jak mogę to zrobić?
Dlaczego lepiej jest utrzymać tablicę komórce? – user592419
, jeśli ponownie wywołasz funkcję cellForRowAtIndexPath, aby przechwycić wybraną komórkę, Niepotrzebne będzie wykonywanie całej funkcji i ponowne utworzenie komórki. Która byłaby kosztowna w porównaniu z przechowywaniem już utworzonej komórki w tablicy –
Jeśli użyjesz insertObject Twoja tablica będzie wszędzie w jednym miejscu. Dokumenty mówią: "Jeśli indeks jest już zajęty, obiekty w indeksie i poza nim są przesuwane poprzez dodanie 1 do ich indeksów, aby zrobić miejsce.". Tak więc, kiedy cellForRowAtIndexPath jest wywoływany po raz drugi (po przewinięciu może), ta sama komórka jest wstawiana, ale oryginalna i wszystkie inne komórki są wypychane do przodu w tablicy. – amergin