Swift funktioniert genauso wie Obj-C, wird jedoch in der neuen Sprache überarbeitet. Ich habe nicht viele Informationen aus Ihrem Beitrag, aber lassen Sie uns jedem TableViewController einen Namen geben, um meine Erklärung zu erleichtern.
HomeTableViewController (dies ist der Screenshot, den Sie oben haben)
PlayerTableViewController (dies ist der Player-Bildschirm, zu dem Sie reisen möchten)
Vor diesem Hintergrund benötigen Sie in PlayerTableViewController eine Variable, in der die übergebenen Daten gespeichert werden. Haben Sie direkt unter Ihrer Klassendeklaration so etwas (wenn Sie die Struktur als einzelnes Objekt und nicht als Array speichern möchten:
class PlayerTableViewController: UITableViewController {
var programVar : Program?
Danach gibt es zwei Möglichkeiten, Daten an den neuen TableViewController zu senden.
1) Verwenden von prepareForSegue
Am Ende von HomeTableViewController verwenden Sie die prepareForSegue-Methoden, um die Daten zu übergeben. Hier ist ein Beispiel für den Code, den Sie verwenden werden:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
var newProgramVar = Program(category: "Some", name: "Text")
let destinationVC = segue.destinationViewController as PlayerTableViewController
destinationVC.programVar = newProgramVar
}
}
Sobald PlayerTableViewController geladen wurde, ist die Variable bereits festgelegt und kann verwendet werden
2) Verwenden von didSelectRowAtIndexPath
Wenn bestimmte Daten basierend auf der ausgewählten Zelle gesendet werden müssen, können Sie didSelectRowAtIndexPath verwenden. Damit dies funktioniert, müssen Sie Ihrem Segue in der Storyboard-Ansicht einen Namen geben (lassen Sie mich wissen, wenn Sie auch wissen müssen, wie das geht).
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
let selectedProgram = programy[indexPath.row]
let destinationVC = PlayerTableViewController()
destinationVC.programVar = selectedProgram
destinationVC.performSegueWithIdentifier("playerSegue", sender: self)
}
Lassen Sie mich wissen, wenn Sie weitere Informationen dazu benötigen