Modal segue potrzebuje 2 kliknięć zamiast jednego

My UITableView potrzebuje 2 kliknięć, aby wyświetlić stronę szczegółów wybranej komórki: jedną do wyboru, a drugą do wyświetlenia widoku szczegółów. Chciałbym, żeby jeden klik pokazał bezpośrednio widok szczegółów klikniętej komórki.

W moim UITableViewManager.m używam modalnego segue za pomocą tej metody:

    - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([[segue identifier] isEqualToString:@"showDetail"]) {
        NSIndexPath *indexPath = [playerList indexPathForSelectedRow];
        TCPlayerStat *object = _objects[indexPath.row];
        [[segue destinationViewController] setPlayerStat:object];
    }
}

Nie mogę pracować z push segue, ponieważ nie mam kontrolera nawigacji (i tak naprawdę nie chcę).

Sprawdziłem Inspektora atrybutów TableView, ale nie znalazłem niczego, co mogłoby mieć znaczenie. Zaznaczono opcję „Pojedynczy wybór” i zaznaczono „Pokaż zaznaczenie na dotyku”. Nie wiem, czy to możliwe, a jeśli tak, to gdzie ...

Dzięki za pomoc.

EDYCJA 1: Kiedy piszę dwie takie metody, nadal nie działa (wymaga 2 kliknięć) i mam nowy dziennik ostrzeżeń:

„Ostrzeżenie: Próbowano przedstawić TCDetailViewController: 0xa27b900 na TCRootViewController: 0xa24f050 podczas trwającej prezentacji!”

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    [self performSegueWithIdentifier:@"showDetail" sender:self];
}

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([[segue identifier] isEqualToString:@"showDetail"]) {
        NSIndexPath *indexPath = [playerList indexPathForSelectedRow];
        TCPlayerStat *object = _objects[indexPath.row];
        TCDetailViewController *detailViewController = [segue destinationViewController];
        [detailViewController setPlayerStat:object];
    }
}

EDYCJA 2: Nie wiem dlaczego, ale czasami działa idealnie i nie wymaga drugiego kliknięcia w widoku tabeli. Nie mogę się dowiedzieć: /

Rozwiązanie poniżej

questionAnswers(6)

yourAnswerToTheQuestion