Array an nächsten View übergeben

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

  • Array an nächsten View übergeben

    Hallo zusammen,

    ich habe ein Array

    Quellcode

    1. var todos = [String]()



    welches den Inhalt von einem TextField übergeben bekommt, nachdem ein Button gedrückt wurde

    Quellcode

    1. @IBAction func addButtonPressed(sender: AnyObject) {
    2. todos.append(newContentTextField.text!)
    3. }

    Ich möchte nun das komplette Array an einen anderen VC übergeben und in der Variable returnedTodos speichern



    Quellcode

    1. override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    2. let firstVC: FirstViewController = segue.destinationViewController as! FirstViewController
    3. firstVC.returnedTodos = todos[]
    4. }

    Kann mir jemand einen Hinweis geben was in Zeile 5 in die eckigen Klammern muss, sodass alle Werte übernommen werden? Oder ist diese Logik die ich verfolge grundsätzlich falsch? :D Arbeite das erste mal mit einem Segue :/

    Oder kann es sein das die Daten im TableView auf dem anderen View nur nicht angezeigt werden? Muss der TableView irgendwie refreshed werden wenn ich dorthin zurück springe?


    Dankeschön!
    cranyk
    „Wer immer tut, was er schon kann, bleibt immer das, was er schon ist.“
    Henry Ford

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von cranyk ()

  • aber ich will ja gar kein leeres array erstellen :D ich will die werte von todos an returnedTodos. Und es ist gerade leer was ja der Fehler ist.

    Die Texteingaben auf dem zweiten VC wird im array todos gespeichert. Diese Werte sollen mit Hilfe des Segues und dem Array returnedtodos an den ersten VC übergeben werden.
    „Wer immer tut, was er schon kann, bleibt immer das, was er schon ist.“
    Henry Ford
  • ja habe ich...

    habe das so verstanden das ich die eckigen klammern weglassen soll und so die werte übergeben werden...


    firstVC.returnedTodos = todos


    Das habe ich bereits probiert aber dann stehen keine Werte im returnedtodos. Das habe ich ja auch in der Antwort versucht zu beschreiben.

    Oder habe ich matz ANtwort falsch verstanden?
    „Wer immer tut, was er schon kann, bleibt immer das, was er schon ist.“
    Henry Ford
  • klar das mag sein aber eine richtige lösung habe ich dazu auch nicht erhalten/gefunden wie ich es hätte anders machen können.

    Da die Werte in dem Segue nicht übergeben wurden und

    firstVC.returnedTodos = todos

    nicht funktioniert hat, wusste ich mir jetzt anders nicht zu helfen. Da es ein Testprojekt war kann ich das mit einer globalen Variable verschmerzen.

    Wie ist denn so die gängige Praxis oder best practice? Wie übergebt ihr alle Werte eines Arrays an einen anderen VC via Segue?

    matz schrieb:

    Nur weil man es nicht hinbekommt, das Zeug richtig zu verwalten, klatscht man es sich nicht einfach global wo hin um am einfachsten ran zu kommen
    Anscheinend machst du es ja anders. Kannst du mir ein Beispiel zeigen?Oder mir sagen wo soetwas steht?

    Klar durch eine fertige Lösung lern ich es nicht aber das habe ich auch meines Erachtens nicht verlangt.
    „Wer immer tut, was er schon kann, bleibt immer das, was er schon ist.“
    Henry Ford
  • ja wie ich bereits geschrieben hatte

    die eckigen klammern waren ja quatsch wie matz mal geschrieben hat, habe ich ja auch angepasst. Hatte ich ja vorher auch schon selber versucht.

    firstVC.returnedTodos = todos


    So dachte ich dann sollte es funktionieren, hat es aber nicht. Habe ja oben schon gefragt ob ich die Antwort vielleicht falsch verstanden habe. Es gab keine Rückmeldung sodass ich mir mit der globalen Variable selbst geholfen habe, auch wenn es vielleicht nicht das beste Verfahren ist.
    „Wer immer tut, was er schon kann, bleibt immer das, was er schon ist.“
    Henry Ford
  • cranyk schrieb:

    klar das mag sein aber eine richtige lösung habe ich dazu auch nicht erhalten/gefunden wie ich es hätte anders machen können.

    Da die Werte in dem Segue nicht übergeben wurden und

    firstVC.returnedTodos = todos

    nicht funktioniert hat, wusste ich mir jetzt anders nicht zu helfen. Da es ein Testprojekt war kann ich das mit einer globalen Variable verschmerzen.

    Wie ist denn so die gängige Praxis oder best practice? Wie übergebt ihr alle Werte eines Arrays an einen anderen VC via Segue?

    matz schrieb:

    Nur weil man es nicht hinbekommt, das Zeug richtig zu verwalten, klatscht man es sich nicht einfach global wo hin um am einfachsten ran zu kommen
    Anscheinend machst du es ja anders. Kannst du mir ein Beispiel zeigen?Oder mir sagen wo soetwas steht?
    Klar durch eine fertige Lösung lern ich es nicht aber das habe ich auch meines Erachtens nicht verlangt.
    Da ich gestern deine Frage (und die Antworten) mit Interesse gelesen habe, habe ich dann noch etwas im Netz recherchiert.

    Folgende stackoverflow-Postings fand ich dabei ganz interessant:

    Closure as a property: stackoverflow.com/questions/24…n-swift/24318588#24318588
    Delegate pattern: stackoverflow.com/questions/24…-a-segue-using-swift?rq=1

    Mein Eindruck ist, dass das Delegate pattern viel häufiger im Zusammenhang mit Entkopplung und Datentausch genannt wird. Dazu finden sich auch viele Beispiele im Netz (wenn man denn mal weiß nach was man Suchen muss).
  • Michael schrieb:

    cranyk schrieb:

    Da es ein Testprojekt war
    Wenn es ein Testprojekt ist, kannst du es ja mal hier anängen. Dann können wir mal schauen, wo dein Fehler liegt.
    Da ich das Projekt natürlich jetzt anders umgesetzt habe und ich noch einiges eingefügt habe, werde ich in den nächsten Tagen mal versuchen es nochmal so anzupassen wie es war. Sei mir aber nicht böse wenn es erst zum Wochenende ist :/

    Frank_in_HD schrieb:

    cranyk schrieb:

    klar das mag sein aber eine richtige lösung habe ich dazu auch nicht erhalten/gefunden wie ich es hätte anders machen können.

    Da die Werte in dem Segue nicht übergeben wurden und

    firstVC.returnedTodos = todos

    nicht funktioniert hat, wusste ich mir jetzt anders nicht zu helfen. Da es ein Testprojekt war kann ich das mit einer globalen Variable verschmerzen.

    Wie ist denn so die gängige Praxis oder best practice? Wie übergebt ihr alle Werte eines Arrays an einen anderen VC via Segue?

    matz schrieb:

    Nur weil man es nicht hinbekommt, das Zeug richtig zu verwalten, klatscht man es sich nicht einfach global wo hin um am einfachsten ran zu kommen
    Anscheinend machst du es ja anders. Kannst du mir ein Beispiel zeigen?Oder mir sagen wo soetwas steht?Klar durch eine fertige Lösung lern ich es nicht aber das habe ich auch meines Erachtens nicht verlangt.
    Da ich gestern deine Frage (und die Antworten) mit Interesse gelesen habe, habe ich dann noch etwas im Netz recherchiert.
    Folgende stackoverflow-Postings fand ich dabei ganz interessant:

    Closure as a property: stackoverflow.com/questions/24…n-swift/24318588#24318588
    Delegate pattern: stackoverflow.com/questions/24…-a-segue-using-swift?rq=1

    Mein Eindruck ist, dass das Delegate pattern viel häufiger im Zusammenhang mit Entkopplung und Datentausch genannt wird. Dazu finden sich auch viele Beispiele im Netz (wenn man denn mal weiß nach was man Suchen muss).
    Sehr interessante Posts werde ich mir mal durchlesen. Danke dafür! :)
    „Wer immer tut, was er schon kann, bleibt immer das, was er schon ist.“
    Henry Ford