Gewusst wie: übergeben von Daten an eine andere Steuerung auf entlassen ViewController?
Möchte ich weitergeben meiner Daten von einem ViewController
zu anderen VC auf VC entlassen. Ist es möglich?
Habe ich versucht, mit der nächsten Methode und kein Erfolg:
Auf den button klicken:
self.dismiss(animated: true) {
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let controller = storyboard.instantiateViewController(withIdentifier: "EditViewController") as! EditViewController
controller.segueArray = [values]
}
wenn EditViewController
erscheint wieder, meine segueArray
ist nil
es.
Wie kann ich geben Sie meine Daten aus my ViewController
zu den EditViewController
auf entlassen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Der beste Weg, um die übergabe der Daten an die vorherigen view-controller ist durch Delegierte..., wenn man vom ViewController A nach B, pass-view-controller Ein, als Delegierter und auf die Methode viewWillDisappear für ViewController B, Aufruf der delegate-Methode im ViewController A.. Protokolle helfen würde, definieren, delegieren und die benötigten Methoden implementiert werden, die von früheren VC. Hier ein kurzes Beispiel:
Protokoll für die übergabe von Daten:
Viewcontroller Ein:
Entlassung viewcontroller:
var delegate: isAbleToPassData
dieser code wirft Fehler . es solltevar delegate: isAbleToPassData!
In die dismiss-Abschluss-block, erstellen Sie eine neue Instanz der EditViewController. Ich gehe davon aus, dass ein anderer EditViewController Instanz vorhanden ist, zurück in die Navigations-stack, die Sie brauchen, um zu finden, dass die Instanz & legen Sie die segueArray zu Werten.
Dass Sie erreichen können, durch Durchlaufen Ihre navigation-stack-viewcontrollers wie:
Aber ich würde empfehlen, verwenden Sie die delegate-Muster, wie:
In der viewcontroller (nennen wir es einfach ViewController), wo die entlassen block ist, deklarieren Sie einen Delegaten-Eigenschaft:
Dann auf der Darstellung der Instanz (ich gehe davon aus EditViewController) ViewController festlegen, die delegieren, wie:
Entsprechen und die EditViewController, um die delegate-Protokoll wie:
Erkennen, wenn Sie die zurück-Taste gedrückt wird, die auf einem view-controller, benutze ich nur:
Eine generische Lösung: (? Swift 5.1 )