Zunächst möchte ich erklären, was genau das Szenario, das ich archivieren möchte.Aktualisierung von Steckdosen nach dem Schließen einer ViewController
Mein rootviewcontroller -> FirstViewController -> DetailViewController -> Detail2ViewController und dann zurück zu FirstViewController mit einem Label von einer Funktion in FirstViewController aktualisiert.
(Angenommen, -> bedeutet einen Knopfdruck)
Jetzt benutze ich diese die Funktion aus den letzten Viewcontroller zu nennen:
var go = FirstViewController()
self.go.get() //get is the function that updates the textfield text.
self.presentingViewController?.presentingViewController?.dismissViewControllerAnimated(true, completion: nil)
Jetzt drucke ich die Zeichenfolge Ich wollte das sein neuer Text meines Labels und es funktioniert, aber wenn ich diese Zeile verwenden:
self.label.text = newone // newone is the new string
ich habe einen Absturz mit diesem Protokoll:
fatal error: unexpectedly found nil while unwrapping an Optional value
Natürlich ist die gleiche Funktion funktioniert, wenn ich die FirstViewController erste erreichen und ich habe auch versucht, eine Zeichenfolge zu verwenden, um den Beschriftungstext wie folgt einzufügen:
self.label.text = "hello"
Vielen Dank im Voraus.
EDIT:
Ich habe vergessen, Navigationssteuerungen zu setzen.
NavContr -> RootViewController -> FirstViewController -> DetailViewController -> NavContr -> Detail2ViewController
Wie die folgende Antwort sagt, 'var go = FirstViewController()' ist falsch, Sie müssen etwas wie 'los gehen = self.presentingViewController! .presentingViewController! wie! FirstViewController '(auch nicht empfohlen, benutze stattdessen delegate) – Tj3n
@ Tj3n danke für deinen Kommentar Ich habe versucht, es mit Delegierten zu tun, aber ich konnte meine Frage nicht mit Nav-Controllern bearbeiten Kannst du mir ein Beispiel mit dem neuen Szenario geben? –