Pensé que agregaría otra posibilidad. Una de las cosas que puede hacer es conectar dos escenas en un guión gráfico utilizando un segue que no está conectado a una acción, y luego desencadenar programáticamente el segue dentro de su controlador de vista. La forma en que hace esto es que tiene que arrastrar desde el icono del propietario del archivo en la parte inferior de la escena del guión gráfico que es la escena de segmentación y arrastrar hacia la escena de destino. Pondré una imagen para ayudar a explicar.
Aparecerá una ventana emergente para "Manual Segue". Elegí Push como el tipo. Toca el pequeño cuadrado y asegúrate de estar en el inspector de atributos. Déle un identificador que usará para referirse a él en el código.
Ok, a continuación voy a seguir usando un elemento de botón de barra programática. En viewDidLoad o en otro lugar, crearé un elemento de botón en la barra de navegación con este código:
UIBarButtonItem *buttonizeButton = [[UIBarButtonItem alloc] initWithTitle:@"Buttonize"
style:UIBarButtonItemStyleDone
target:self
action:@selector(buttonizeButtonTap:)];
self.navigationItem.rightBarButtonItems = @[buttonizeButton];
Ok, observe que el selector es buttonizeButtonTap :. Entonces escriba un método nulo para ese botón y dentro de ese método llamará al segue de esta manera:
-(void)buttonizeButtonTap:(id)sender{
[self performSegueWithIdentifier:@"Associate" sender:sender];
}
El parámetro del remitente es necesario para identificar el botón cuando se llama a prepareForSegue. prepareForSegue es el método de marco en el que creará una instancia de su escena y le transmitirá los valores que necesite para hacer su trabajo. Así es como se ve mi método:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"Associate"])
{
TranslationQuizAssociateVC *translationQuizAssociateVC = [segue destinationViewController];
translationQuizAssociateVC.nodeID = self.nodeID; //--pass nodeID from ViewNodeViewController
translationQuizAssociateVC.contentID = self.contentID;
translationQuizAssociateVC.index = self.index;
translationQuizAssociateVC.content = self.content;
}
}
Ok, solo lo probé y funciona. Espero que te ayude.