Ich versuche, ein Objekt an einen anderen View-Controller zu übergeben, erhalte aber einen Fehler, wenn ich die Eigenschaft des View-Controller-Objekts festlegen möchte.Daten können nicht an einen anderen View-Controller übergeben werden, wenn ich auf den Übergang vorbereitet bin
Antwort
Der Fehler recht informativ. Es besagt, dass die Klasse ViewController
keine öffentliche oder interne Eigenschaft namens data
hat. Sie müssen eine Eigenschaft namens data
in Klasse ViewController
deklarieren.
class ViewController: UIViewController {
var data: String?
}
die Klasse, die Sie haben, dass ViewController
Bedürfnisse genannt ist eine öffentliche Variable mit dem Namen Daten haben.
Ihre ViewController
Klasse könnte wie folgt aussehen:
class ViewController: UIViewController {
// This is your public accessible variable you can set during a seque
var data: String?
override func loadView() {
super.loadView()
print(self.data)
}
}
Auch Ihre prepareForSegue Funktion wie diese vereinfacht werden kann
if let displayTodoVC = segue.destinationViewController as? ViewController {
displayTodoVC.data = "Hello World"
}
Die ViewController
ist offensichtlich ein String-Variable data
genannt fehlt.
class ViewController : UIViewController {
var data: String? // Make sure you have this defined in your view controller.
}
Ich würde auch vorschlagen, dass Sie eine bedingte Abwickeln des destinationViewController in Ihrem prepareForSegue
verwenden.
prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if let viewController = segue.destinationViewController as? ViewController {
viewController.data = "Hello World"
}
}
Für künftige Beiträge, bitte nicht Bilder des Codes veröffentlichen. Sie sollten Code als Text in Ihre Fragen einfügen.
Glücklich Codierung :)
Können Sie den Code eines anderen Viewcontroller als Referenz hinzufügen? –