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

В простом тестовом приложении я попытался передать объект массива с именем "thisArray» отMasterViewController к строке с именем "passedData» в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)

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