Array über Tableviewcell in Detailviewcontroller übergeben

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

  • Array über Tableviewcell in Detailviewcontroller übergeben

    Ich habe folgendes Problem: Ich habe ein Array "arr" indem ich mehrere Daten speichern.

    Quellcode

    1. let arr:[String:String] = ["Name":club_name,"ID":club_id,"Ort":club_ort,"Telefon":club_nummer]



    Jetzt will ich nur den "Name" des Array in einer tableview anzeigen lassen und füge es somit der table hinzu.

    Quellcode

    1. self.tableArray.addObject(arr["Name"]!)
    Wird auch angezeigt der Name wenn ich die App starte das passt ja alles, nur ist mein Problem das ich wenn ich die tableviewcell auslese das in dem "item" nur der Name eben drinnensteht ich will aber das ganze Array im Hintergrund mitgeben weil ich die restlichen Daten die in dem Array gespeichert sind in dem ClubsDetailController dann brauche. Wie löse ich das am besten? Ich probiere schon stundenlang herum komme aber auf keine sinnvolle Lösung. Hoffe es kann mir wer helfen.

    Quellcode

    1. override func prepareForSegue(segue: UIStoryboardSegue,
    2. sender: AnyObject!) {
    3. // sender is the tapped `UITableViewCell`
    4. let cell = sender as! ClubsCell
    5. let indexPath = self.tableView.indexPathForCell(cell)
    6. // load the selected model
    7. let item = self.tableArray[indexPath!.row]
    8. //let item = items[indexPath!.row]
    9. let detail = segue.destinationViewController as! ClubsDetailController
    10. // set the model to be viewed
    11. detail.ausgabeLabel = item as! String
    12. }
    Alles anzeigen
  • fabian1302 schrieb:

    Ich habe ein Array "arr" indem ich mehrere Daten speichern.
    Das ist ein Dictionary oder Assoziatives Array. ;)

    Leg in ClubsDetailController eine Propery für das Dictionary an, z. B. var data: [String:String]. In prepareForSegue übergibst nur du das Dictionary (detail.data = self.tableArray[indexPath!.row]), und in viewWillAppear von ClubsDetailController übergibst du die Werte aus den Daten an die UI-Elemente.
    „Meine Komplikation hatte eine Komplikation.“
  • Geht es hier um iOS oder OS X?

    Bei iOS füllst Du die TableViewCells ja in der Methode tableView:cellForRowAtIndexPath: Da ist es eigentlich "egal" wo die Daten für die Zellen her kommen. D.h. Du kannst diese auch aus dem Array mit allen Daten ermitteln.

    Mir ist nicht klar, warum Du extra nur die benötigten Daten für die Zellen in ein eigenes Array extrahierst. ?(
  • macmoonshine schrieb:

    fabian1302 schrieb:

    Ich habe ein Array "arr" indem ich mehrere Daten speichern.
    Das ist ein Dictionary oder Assoziatives Array. ;)
    Leg in ClubsDetailController eine Propery für das Dictionary an, z. B. var data: [String:String]. In prepareForSegue übergibst nur du das Dictionary (detail.data = self.tableArray[indexPath!.row]), und in viewWillAppear von ClubsDetailController übergibst du die Werte aus den Daten an die UI-Elemente.
    funkt bei mir irgendwie nicht wenn ich das so mache :/ Kann ich dir das Projekt schicken und du besserst das aus? :P
  • fabian1302 schrieb:

    macmoonshine schrieb:

    fabian1302 schrieb:

    Ich habe ein Array "arr" indem ich mehrere Daten speichern.
    Das ist ein Dictionary oder Assoziatives Array. ;) Leg in ClubsDetailController eine Propery für das Dictionary an, z. B. var data: [String:String]. In prepareForSegue übergibst nur du das Dictionary (detail.data = self.tableArray[indexPath!.row]), und in viewWillAppear von ClubsDetailController übergibst du die Werte aus den Daten an die UI-Elemente.
    funkt bei mir irgendwie nicht wenn ich das so mache :/ Kann ich dir das Projekt schicken und du besserst das aus? :P
    :thumbsup: :thumbsup: