Ho pensato di aggiungere un'altra possibilità. Una delle cose che puoi fare è collegare due scene in uno storyboard usando un seguito che non è associato a un'azione e quindi attivare a livello di codice il seguito all'interno del controller della vista. Il modo in cui lo fai è che devi trascinare dall'icona del proprietario del file nella parte inferiore della scena dello storyboard che è la scena successiva e trascinare a destra sulla scena di destinazione. Lancio un'immagine per aiutare a spiegare.
Verrà visualizzato un popup per "Segue manuale". Ho scelto Push come tipo. Tocca il quadratino e assicurati di essere nella finestra di ispezione degli attributi. Dagli un identificatore che userai per fare riferimento ad esso nel codice.
Ok, dopo seguirò usando una voce del pulsante della barra programmatica. In viewDidLoad o da qualche altra parte creerò un elemento pulsante sulla barra di navigazione con questo codice:
UIBarButtonItem *buttonizeButton = [[UIBarButtonItem alloc] initWithTitle:@"Buttonize"
style:UIBarButtonItemStyleDone
target:self
action:@selector(buttonizeButtonTap:)];
self.navigationItem.rightBarButtonItems = @[buttonizeButton];
Ok, nota che il selettore è buttonizeButtonTap :. Quindi scrivi un metodo vuoto per quel pulsante e all'interno di quel metodo chiamerai il seguente in questo modo:
-(void)buttonizeButtonTap:(id)sender{
[self performSegueWithIdentifier:@"Associate" sender:sender];
}
Il parametro mittente è necessario per identificare il pulsante quando viene chiamato preparForSegue. preparForSegue è il metodo framework in cui istanzerai la tua scena e le passerai tutti i valori necessari per fare il suo lavoro. Ecco come appare il mio metodo:
- (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, l'ho appena provato e funziona. Spero che ti aiuti.