In meiner App habe ich eine Schaltfläche, die programmgesteuert einen Übergang ausführt:
- (void)myButtonMethod
{
//execute segue programmatically
[self performSegueWithIdentifier: @"MySegue" sender: self];
}
Ich würde gerne wissen, ob es eine Möglichkeit gibt, auf die Zielansicht zu verweisen und einige Parameter zu übergeben.
Ich weiß, dass prepareForSegue
ich mich in der Methode mit: darauf beziehen kann myDestinationViewController *vc = [segue destinationViewController];
, aber ich weiß nicht, wie ich den Segue programmgesteuert ausführen soll.
Hast du eine Idee?
Danke, Yassa
AKTUALISIEREN:
Diese Frage tut mir leid !!! Ich habe einfach festgestellt, dass die prepareForSegue
Methode auch dann aufgerufen wird, wenn der Segue programmgesteuert aufgerufen wird, und es daher möglich ist, Parameter auf die gleiche übliche Weise zu übergeben.
ios
view
parameters
storyboard
segue
Yassassin
quelle
quelle
Antworten:
Die Antwort ist einfach, dass es keinen Unterschied macht, wie der Übergang ausgelöst wird.
Die
prepareForSegue:sender:
Methode wird in jedem Fall aufgerufen und hier geben Sie Ihre Parameter weiter.quelle
Alte Frage, aber hier ist der Code, wie Sie das tun, was Sie fragen. In diesem Fall übergebe ich Daten aus einer ausgewählten Zelle in einer Tabellenansicht an einen anderen Ansichtscontroller.
in der .h-Datei der Trget-Ansicht:
in der .m-Datei:
dataModel
kann seinstring
,int
oder wie in diesem Fall ist es ein Modell, das viele Elemente enthältODER...
quelle
Swift 4:
Swift 3:
quelle
Ich verstehe das Problem, den Segue an einem Ort durchzuführen und den Status beizubehalten, um Parameter zur Vorbereitung des Segues zu senden.
Ich habe einen Weg gefunden, dies zu tun. Ich habe ViewControllers mithilfe einer Kategorie eine Eigenschaft namens userInfoDict hinzugefügt. und ich habe überschreibe, führe segue auch mit der Kennung durch, so dass Wenn der Absender selbst ist (bedeutet der Controller selbst). Dieses userInfoDict wird an den nächsten ViewController übergeben.
Anstatt den gesamten UserInfoDict zu übergeben, können Sie hier auch die spezifischen Parameter als Absender übergeben und entsprechend überschreiben.
Eine Sache, die Sie beachten müssen. Vergessen Sie nicht, die Super-Methode in Ihrer performSegue-Methode aufzurufen.
quelle
Falls Sie eine neue schnelle Version verwenden.
quelle