Swift Rückkehr aus einem NSTabView zum aufrufendem NSViewController

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

Aufgrund der Corona-Krise: Die Veröffentlichung von Stellenangeboten und -gesuchen ist bis 31.12.2020 kostenfrei. Das beinhaltet auch Angebote und Gesuche von und für Freischaffende und Selbstständige.

  • Swift Rückkehr aus einem NSTabView zum aufrufendem NSViewController

    Hallo,

    mein NSViewController ruft einen NSTabView auf. In diesem kann u.a. der aktuell angezeigte Datensatz des VC aktualisiert werden. Wenn ich nun den TabView verlasse, wird nicht der aktualisierte Datensatz im VC angezeigt. Soweit ist dies auch i.O..

    Ich würde gerne wissen welche Methode im VC aufgerufen wird, nachdem ich den TabView verlassen habe, um dort einen Aufruf meiner Methode einzutragen welche die Anzeige aktualisiert?

    Existiert so eine Methode (wie z.B. renewView() oder so) überhaupt?



    Nachtrag: Der TabView wird mittels einer Verknüpfung (NSButtons zum TabView) im Storyboard aufgerufen; also nicht via Code.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von OSXDev () aus folgendem Grund: Nachtrag

  • Wenn Du in dem ViewController Bindings verwendest, dann sollte sich das UI automatisch aktualisieren, wenn sich das für die Bindings verwendete Objekt ändert.

    Wenn Du eine Unwind Segue zum Schließen des NSTableViews verwendest, dann sollten in dem vorherigen ViewController doch die entsprechenden Seque Methode aus dem NSSeguePerforming Protocol aufgerufen werden, oder?
  • MCDan schrieb:

    Wenn Du in dem ViewController Bindings verwendest, dann sollte sich das UI automatisch aktualisieren, wenn sich das für die Bindings verwendete Objekt ändert.

    Wenn Du eine Unwind Segue zum Schließen des NSTableViews verwendest, dann sollten in dem vorherigen ViewController doch die entsprechenden Seque Methode aus dem NSSeguePerforming Protocol aufgerufen werden, oder?
    Das ist richtig, leider war dann meine Frage bzw. die Beschreibung nicht vollständig. Ich verwende an dieser Stelle keine Bindings im ViewController; hätte wohl das Wort Datensatz in diesem Zusammenhang nicht verwenden dürfen. ;)

    Okay. Das mit dem NSSeguePerforming Protocol hört sich passend an. Hast Du hierzu vielleicht ein Beispiel in dem ich mir dies mal anschauen könnte?

    Nachtrag:
    Eigentlich dachte ich es würde mit u.a. Code funktionieren:

    Quellcode

    1. ViewController().datenAusgabeVC(personDaten: sDaten!)
    Jedoch erhalte ich hierdurch nur einen Abbruch mit dem Hinweis, dass die Variable nil sei. Geprüft habe ich die Variable und diese ist gefüllt. :/


    Anmerkung: Sollte mir mal eine Mütze schlaf können, jedoch muss das Teil erst laufen. ||

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von OSXDev () aus folgendem Grund: Anmerkung / Nachtrag

  • Mit ViewController() erzeugst Du ja ein neues ViewController Objekt. Du möchtest die Daten ja sicherlich in dem bestehenden ViewController Objekt aktualisieren.

    Ich habe Segues noch nicht verwendet und hoffe, dass die Implementierung unter macOS zu der unter iOS passt.

    Wenn Du eine Unwind Segue verwendest, dann hast Du in dem ViewController ja eine passende IBAction mit einer NSStoryboardSegue als Parameter definiert. Diese hast Du dann im Storyboard für die Unwind Segue verwendet. Wenn die Unwind Segue ausgeführt wird, dann wird in dem Destination Controller dann die verknüpfte IBAction mit der NSStoryboardSegue als Parameter aufgerufen.

    Über die NSStoryboardSegue in der Action kommst Du dann an den sourceController, also den NSTableView bzw. den dazu passenden NSViewController mit dem TableView. Somit kannst Du dann den geänderten Datensatz aus dem ViewController mit dem TableView in den ViewController übernehmen.