Użyj UITableViewCell jako przycisku
Przeczytałem kilka podobnych pytań na ten temat w Stack Overflow, ale żaden z nich nie miał satysfakcjonującej odpowiedzi.
To, co próbuję osiągnąć, to „Przycisk logowania na Facebooku” z ekranu Ustawienia.
Chcę to osiągnąć za pomocą komórek statycznych. Wkrótce jednak odkryłem, że nie mogę połączyć „akcji” z UITableViewCell za pomocą Xcode.
Następnie starałem się osiągnąć ten sam rezultat, używając niestandardowego UITableViewCell z UIButtonem w środku, ale spowodowało to wiele dodatkowych problemów ze stylizacją, aby wyglądał dokładnie jak prawdziwy UITableViewCell.
Teraz udało mi się sprawić, by UITableViewCell zachowywał się jak przycisk, używając następującego rozwiązania:
Zmieniłem identyfikator „przycisku logowania” UITableViewCell na „loginButton”. Dodałem następujący kod do kontrolera widoku tabeli.
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
if ([[selectedCell reuseIdentifier] isEqualToString:@"loginButton"]) {
NSLog(@"Clicked");
// Execute function to run code for Login button
}
}
Zamiast wykonywać IBAction (co miałoby miejsce, gdybym mógł po prostu połączyć go jak przycisk w Xcode), teraz wykonam funkcję.
To działa zgodnie z oczekiwaniami. Ale powodem, dla którego stworzyłem to pytanie, jest: Chcę wiedzieć, czy jest to właściwy sposób. Czy to jest ok? Czy to źle? Dlaczego to jest ok lub złe? Czy jest lepsze rozwiązanie? Dzięki!