J'ai pensé ajouter une autre possibilité. L'une des choses que vous pouvez faire est de connecter deux scènes dans un storyboard à l'aide d'une séquence qui n'est pas attachée à une action, puis de déclencher la séquence par programmation dans votre contrôleur de vue. Pour ce faire, vous devez faire glisser depuis l'icône du propriétaire du fichier en bas de la scène du storyboard qui est la scène de transition, et faire glisser vers la droite vers la scène de destination. Je vais jeter une image pour aider à expliquer.
Une fenêtre apparaîtra pour "Manual Segue". J'ai choisi Push comme type. Appuyez sur le petit carré et assurez-vous que vous êtes dans l'inspecteur d'attributs. Donnez-lui un identifiant que vous utiliserez pour y faire référence dans le code.
Ok, je vais ensuite utiliser un élément de bouton de barre de programmation. Dans viewDidLoad ou ailleurs, je vais créer un élément de bouton dans la barre de navigation avec ce code:
UIBarButtonItem *buttonizeButton = [[UIBarButtonItem alloc] initWithTitle:@"Buttonize"
style:UIBarButtonItemStyleDone
target:self
action:@selector(buttonizeButtonTap:)];
self.navigationItem.rightBarButtonItems = @[buttonizeButton];
Ok, notez que le sélecteur est buttonizeButtonTap :. Donc, écrivez une méthode void pour ce bouton et dans cette méthode, vous appellerez la séquence comme ceci:
-(void)buttonizeButtonTap:(id)sender{
[self performSegueWithIdentifier:@"Associate" sender:sender];
}
Le paramètre sender est requis pour identifier le bouton lorsque prepareForSegue est appelé. prepareForSegue est la méthode de framework où vous allez instancier votre scène et lui passer toutes les valeurs dont elle aura besoin pour faire son travail. Voici à quoi ressemble ma méthode:
- (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, viens de le tester et ça marche. J'espère que cela vous aide.