Ich versuche, Daten durch prepare (für segue) -Methode zu übergeben, aber ich kann nicht übergeben Daten in der ReceiverViewController. Ich frage mich, ob ich die ganze Instanz lieber weitergeben würde, ich weiß nicht, ob es möglich ist. Ich bin ein Neuling auf Swift und dies ist mein erster Versuch, wäre jeder Rat willkommen.Pass spezifischen Schlüssel/Wert mit Prepare-Segment zwischen mehreren Controllern
Die Klasse ich verwenden möchte, ist folgende - UserClass.swift:
class User {
var firstname: String
var lastname: String
var role: Int
init(firstname: String, lastname: String, role: Int) {
self.firstname = firstname
self.lastname = lastname
self.role = role
}
}
Methode auf FirstViewController.swift
vorbereiten Meinoverride func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "loadBoard" {
if let dVC = segue.destination as? ReceiverViewController {
dVC.code?.firstname = anotherValue
//Following show me nil
print("Sent data \(dVC.code?.firstname)")
}
}
}
Hier ist, was ich versucht, die Daten zu erhalten - ReceiverViewController .swift:
var code: User?
if let test = self.code?.firstname {
self.categoryLabel.text = code?.firstname
print(code)
} else {
print("Something wrong")
}
Sind Sie die 'code' Eigenschaft irgendwo im Code initialisiert? – Kymer
Übergeben Sie die gesamte Instanz. Es sollte funktionieren. –
Das Übergeben von Daten zwischen Controllern ist nicht schwierig, kann aber etwas verwirrend sein. [Dieses Beispiel] (https://github.com/ryantxr/legendary-potato) zeigt, wie es geht. – ryantxr