Przekazywanie danych między kontrolerami widoku DidSelectRowsAtIndexPath Storyboards

W prostej aplikacji testowej próbowałem przekazać obiekt tablicy o nazwie „thisArray” zMasterViewController do ciągu o nazwie „passingData” wDetailViewController. Używam Storyboardów iUIViewController są wbudowane w kontroler nawigacji. UżywającprepareForSegue metoda, pomyślnie przekazałem dane międzyUIViewController:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if ([segue.identifier isEqualToString:@"pushData"]) {
        NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
        DetailViewController *destViewController = segue.destinationViewController;
        destViewController.passedData = [thisArray objectAtIndex:indexPath.row];
    }
}

Teraz z jakichś powodów chcę użyćdidSelectRowsAtIndexPath zamiastprepareForSegue. Użyłem tego:

- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSMutableString *object = thisArray[indexPath.row];
    detailViewController.passedData = object;   
}

Ale to nie zadziałało. Użyłem następujących:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
     detailViewController = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil];

    NSMutableString *object = thisArray[indexPath.row];
    detailViewController.passedData = object;
    [self.navigationController pushViewController:detailViewController animated:YES];  
}

Ale to też nie zadziałało.

PYTANIE:

1) Jak poprawnie pisaćdidSelectRowsAtIndexPath zamienićprepareForSegue?

2) Jeśli używamdidSelectRowsAtIndexPath, czy muszę usunąć połączenie segue międzyUIViewController w serii ujęć?

3) Co, jeśli naprawdę nie ma połączenia segue między kontrolerami widoku, jak mogę nadal przekazywać dane między nimi za pomocądidSelectRowAtIndexPath?

Dzięki!

AKTUALIZACJA: Na podstawie odpowiedzi i otrzymanych komentarzy napisałem:

Najpierw usunąłem połączenie segue między kontrolerami, ustaw identyfikator tablicy StoryBoardDetailViewController, nazwa klasy jest równieżDetailViewController.

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    UIStoryboard*  sb = [UIStoryboard storyboardWithName:@"DetailViewController"
                                                  bundle:nil];
    UIViewController* vc = [sb instantiateViewControllerWithIdentifier:@"DetailViewController"];

    NSMutableString *object = thisArray[indexPath.row];
    detailViewController.passedData = object;
    [self.navigationController pushViewController:detailViewController animated:YES];
}

ale rozbił się z następującym błędem:

*** Aplikacja kończąca z powodu nieprzechwyconego wyjątkuNSInvalidArgumentException, powód: „Nie można znaleźć storyboardu o nazwieDetailViewController w pakiecie

questionAnswers(1)

yourAnswerToTheQuestion