2017-08-03 2 views
0

Zunächst einmal ich jemand danken möchte die Zeit nehmen, um mir zu helfen :)Anfügen neues Objekt aus verschiedenen View-Controller erstellt performsegue

Hier ist die Struktur verwendet, um Objekte für meine Array zu erstellen.

struct cellData { 
    let workoutName : String! 
    let workoutSets : Int 
    let workoutReps : Int 
} 

Dann ein Array gebildet aus Celldata

var workoutArray = [cellData]() 

im Grunde in meiner MainScreen.swift rief ich eine neue Variable, die die Daten aus der performsegue Funktion übergeben halten

var passedData = cellData(workoutName: "", workoutSets: 0, workoutReps: 0) 

Dann In meinem CreateWorkout.swift habe ich angegeben, was vor einem Übergang passieren soll. In diesem Fall setze ich den Ziel-View-Controller und eine neue Konstante, die ein neues Objekt aus der Struktur erzeugt und passedData gleich dem Wert der UI-Elemente in meinem View-Controller setzt.

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
    let workout = cellData(workoutName: workoutName.text, workoutSets: Int(setStepper.text!)!, workoutReps: Int(repStepper.text!)!) 

    let destinationVC = segue.destination as! MainScreen 
    destinationVC.passedData = workout 

} 

Here is the app when I build the app

Dann legte ich Chest Press in meinem Textfeld

Stellen Sie den Set Stepper bis 4

die Rep Stepper Set zu 5

It works right? Wrong!

Ich möchte in der Lage sein, ein neues o anzuhängen bject jedes Mal, wenn ich segue, aber stattdessen ersetzt es nur das aktuelle Objekt :(

+0

Ich bin ein bisschen verwirrt - was hast du danach mit 'cellData'? Woran denken Sie, dass es angehängt wird? – Michael

+0

@Michael Ich benutze nur ein bisschen wie eine Klasse und benutze es dann, um ein Array aus den Objekten zu machen, die ich damit mache. –

+0

Ich denke, was Sie tun sollten, ist eine Datenquelle für Ihre MainScreen und wann immer Sie eine neue DataCell erstellen, sollten Sie die DataSource für den Hauptscreen aktualisieren und Tabellenansicht dort neu laden – 3stud1ant3

Antwort

0

Für eine Tabellenansicht sollte es eine Datenquelle, also erstellen Sie eine neue Datenquelle und jedes Mal erstellen Sie eine neue Datenzelle nur an diese dataSource, this stellt sicher, dass Sie eine Liste von Objekten in Ihrem MainScreen erhalten.

Verwandte Themen