dans mon application, j'ai un bouton qui effectue une séquence par programme:
- (void)myButtonMethod
{
//execute segue programmatically
[self performSegueWithIdentifier: @"MySegue" sender: self];
}
Je voudrais savoir s'il existe un moyen de référencer la vue de destination et de lui transmettre certains paramètres.
Je sais que dans la prepareForSegue
méthode, je peux y faire référence avec:, myDestinationViewController *vc = [segue destinationViewController];
mais je ne sais pas comment exécuter la segue par programme.
As tu des idées?
Merci, yassa
METTRE À JOUR:
Je suis désolé pour cette question !!! J'ai simplement découvert que, même si la segue est invoquée par programme, la prepareForSegue
méthode est appelée de toute façon et il est donc possible de passer des paramètres de la même manière habituelle.
ios
view
parameters
storyboard
segue
Yassassin
la source
la source
Réponses:
La réponse est simplement que la façon dont la transition est déclenchée ne fait aucune différence.
La
prepareForSegue:sender:
méthode est appelée dans tous les cas et c'est là que vous passez vos paramètres.la source
Ancienne question mais voici le code sur la façon de faire ce que vous demandez. Dans ce cas, je transmets les données d'une cellule sélectionnée dans une vue de tableau à un autre contrôleur de vue.
dans le fichier .h de la vue trget:
dans le fichier .m:
dataModel
peut êtrestring
,int
ou comme dans ce cas, c'est un modèle qui contient de nombreux élémentsOU...
la source
Swift 4:
Swift 3:
la source
Je comprends le problème de l'exécution du segue à un endroit et du maintien de l'état pour envoyer des paramètres en préparation de la segue.
J'ai trouvé un moyen de le faire. J'ai ajouté une propriété appelée userInfoDict à ViewControllers à l'aide d'une catégorie. et j'ai surchargé effectuer le segue avec l'identifiant aussi, de telle manière que si l'expéditeur est lui-même (signifie le contrôleur lui-même). Il transmettra cet userInfoDict au prochain ViewController.
Ici, au lieu de passer tout le UserInfoDict, vous pouvez également transmettre les paramètres spécifiques, en tant qu'expéditeur et remplacer en conséquence.
1 chose que vous devez garder à l'esprit. n'oubliez pas d'appeler la super méthode dans votre méthode performSegue.
la source
Dans le cas où vous utilisez une nouvelle version swift.
la source