prepareForSegue bereitet Daten vor, die zwischen den View-Controllern übergeben werden, wobei "performSegue with identifier" den Wechsel tatsächlich zulässt.
Von der Apple-Dokumentation :
Swift2:
performSegueWithIdentifier(_:sender:)
Swift3:
performSegue(withIdentifier: String, sender: Any?)
Apps müssen in der Regel keine programmgesteuerten Übermittlungen durchführen. Ob benötigt, können Sie diese Methode aufrufen, um einen Übergang für eine Aktion auszulösen kann nicht in einer Storyboard-Datei ausgedrückt werden, z. B. ein Übergang zwischen Szenen in verschiedenen Storyboards.
Normalerweise wird ein Segment durch eine Benutzeraktion ausgelöst, z. B. durch Klicken auf a Taste. Konfigurieren Sie in Interface Builder ein Objekt, z. B. ein Steuerelement eingebettet in die Ansichtshierarchie des View-Controllers, um das Überleitung.
Swift2:
prepareForSegue(_:sender:)
Swift3:
prepare(for: NSStoryboardSegue, sender: Any?)
Die Standardimplementierung dieser Methode macht nichts; Sie können Überschreiben Sie es, um relevante Daten an den neuen Ansichtscontroller oder das Fenster zu übergeben Controller, basierend auf dem Kontext des Abschnitts. Das Überleitungsobjekt beschreibt den Übergang und enthält Verweise auf beide Controller beteiligt in der Überleitung.
Segues können aus mehreren Quellen ausgelöst werden, also verwenden Sie die Informationen in den Segue- und Sender-Parametern, um zwischen verschiedenen zu unterscheiden logische Pfade in Ihrer App Zum Beispiel, wenn der Übergang von a stammt In der Tabellenansicht würde der Absenderparameter die Zelle identifizieren, die der Benutzer verwendet geklickt. Sie könnten diese Informationen verwenden, um die Daten auf dem Server festzulegen Zielansicht-Controller.
performSegueWithIdentifier
teilt dem viewController einfach mit, zu welchem Segment Sie wechseln möchten. Sie können Ihre Namen im Interface Builder angeben.
Sie haben möglicherweise einen ViewController mit mehreren Segmenten oder Sie haben möglicherweise etwas vom aktuellen ViewController, das das Ziel-VK beim Durchsuchen benötigt, also Sie würden prepareForSegue verwenden .
%Vor%Es gibt einen Unterschied, den ich in den Antworten hier nicht gesehen habe und der zur Klärung beitragen kann.
Der performSegueWithIdentifier unterstützt Ihren Code, während prepareForSegue den Benutzer befähigt, eine Benutzeraktion zu erfordern.
Nehmen wir an, Sie haben ein Quiz mit einigen Fragen und der Benutzer hat 30 Sekunden Zeit, um auf jeden von ihnen zu antworten.
Wenn der Benutzer auf eine der Antworten klickt, wird prepareForSegue aufgerufen. Der Benutzer ist hier verantwortlich.
Wenn andererseits der Benutzer nichts anderes anklickt als die 30 Sekunden ablaufen, sollte IHR CODE 'den Übergang automatisch ausführen' .
In diesem Fall benötigen Sie den performSegueWithIdentifier , um den Job programmatisch auszuführen. Ihr Code ist hier direkt verantwortlich.
Ich hoffe, es hilft.
Überleitung durchführen, ändert tatsächlich die Ansicht, die der Benutzer sieht. Die perform-segue-Funktion ruft die Vorbereitungs-Überleitungsfunktion auf, bevor sie die Ansicht ändert; Daher werden Entwickler im Allgemeinen Informationen an den nächsten Controller in dieser Funktion weiterleiten, bevor sie durchgehen.
performSegueWithIdentifier wie es heißt, macht einen Übergang von Ihrem aktuellen UIViewController
zu segue-connected UIViewController
prepareForSegue lassen Sie einige zusätzliche Arbeiten vor dem Übergang geschieht
Die Swift 3-Syntax lautet: performSegue(withIdentifier: String, sender: Any?)
. Sie können dies tun, wenn Sie den viewController ohne pre - Konfiguration oder Bedingungen
Sie können auch prepare(for: NSStoryboardSegue, sender: Any?)
ausführen, was zusätzliche Features ergibt:
im Grunde genommen: prepareForSegue bereitet Daten vor, die zwischen den View-Controllern übergeben werden, wobei die Funktion performSegue den Wechsel tatsächlich zulässt
Tags und Links ios swift uistoryboardsegue