Передача данных между контроллерами представления Раскадровки DidSelectRowsAtIndexPath

В простом тестовом приложении я попытался передать объект массива с именем thisArray изMasterViewController к строке с именем «sentData» вDetailViewController, Я использую Раскадровки иUIViewController встроены в контроллер навигации. С помощьюprepareForSegue метод, я успешно передал данные междуUIViewController:

- (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];
    }
}

Теперь по некоторым причинам я хочу использоватьdidSelectRowsAtIndexPath вместоprepareForSegue, Я использовал это:

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

Но это не сработало. Я использовал следующее:

- (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];  
}

Но это также не сработало.

ВОПРОС:

1) Как правильно написатьdidSelectRowsAtIndexPath заменитьprepareForSegue?

2) Если я используюdidSelectRowsAtIndexPathмне нужно удалить переходную связь междуUIViewController в раскадровке?

3) Что, если между контроллерами представления действительно нет последовательной связи, как я могу передавать данные между ними, используяdidSelectRowAtIndexPath?

Спасибо!

ОБНОВЛЕНИЕ: Основываясь на ответе и комментариях, которые я получил, я написал следующее:

Сначала я удалил соединение между контроллерами, установил идентификатор StoryBoardDetailViewController, название класса также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];
}

но его сбой со следующей ошибкой:

*** Завершение приложения из-за необработанного исключенияNSInvalidArgumentExceptionПричина: «Не удалось найти раскадровку с именемDetailViewController в связке

Ответы на вопрос(1)

Ваш ответ на вопрос