Pasar datos entre controladores de vista DidSelectRowsAtIndexPath Storyboards

En una aplicación de prueba simple, he intentado pasar un objeto de matriz llamado "thisArray" desde elMasterViewController a la cadena de caracteres denominada "gusto de los datos" en elDetailViewController. Estoy usando Storyboards y elUIViewController Están incrustados dentro del controlador de navegación. Utilizando laprepareForSegue Método, he pasado con éxito los datos entre elUIViewController:

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

Ahora por algunas razones quiero usardidSelectRowsAtIndexPath en lugar deprepareForSegue. He usado esto:

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

Pero no funcionó. He usado lo siguiente:

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

Pero tampoco funcionó.

PREGUNTA:

1) Cómo escribir correctamentedidSelectRowsAtIndexPath para reemplazarprepareForSegue?

2) Si yo usodidSelectRowsAtIndexPath, ¿necesito quitar la conexión segue entre elUIViewController en el storyboard?

3) ¿Qué pasa si realmente no hay una conexión segura entre los controladores de vista? ¿Cómo puedo pasar los datos entre ellos usandodidSelectRowAtIndexPath?

¡Gracias!

ACTUALIZACIÓN: Basado en la respuesta y los comentarios que recibí, escribí lo siguiente:

Primero quité la conexión segura entre los controladores, configuré el ID de StoryBoardDetailViewController, el nombre de la clase también esDetailViewController.

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

pero se está estrellando con el siguiente error:

*** Terminando la aplicación debido a una excepción no capturadaNSInvalidArgumentException, razón: 'No se pudo encontrar un guión gráfico llamadoDetailViewController en paquete

Respuestas a la pregunta(1)

Su respuesta a la pregunta