J'essaie d'envoyer plusieurs objets de mon contrôleur de vue initial à mon Username VC
. Voici le code segue de mes contrôleurs: Le problème survient lorsque j'ajoute le code pour envoyer le deuxième objet, termreport
. Si je supprime le termsM
et l'affectation, il envoie les étudiants comme d'habitude, mais j'ai aussi besoin d'envoyer l'objet termReport
. Comment pourrais-je résoudre ce problème?Envoi rapide de plusieurs objets à View Controller
ViewControler:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
guard let students = sender as AnyObject as? [Student]
else { return }
guard let termsM = sender as AnyObject as? [TermReport] //How would I send both objects?
else { return }
if let secondVC = segue.destination as? UsernameVC {
secondVC.students = students
secondVC.userWebView = webView
secondVC.terms = termsM // not sending
}
let gradeResponse = try Parser(innerHTML)
self.performSegue(withIdentifier: "ShowStudents", sender: gradeResponse.students)
self.performSegue(withIdentifier: "ShowStudents", sender: gradeResponse.termReports) //how would I send both variables?
UsernameVC:
var terms: [TermReport]!
override func viewDidLoad() {
print("TERM \(terms[0].grades[3])")//returns found nil optional ERROR
}
façon très cool de faire ça! Travaillé vraiment bien. Merci. Une chose cependant quand vous assignez let termData = TermData(), vous devez l'instancier avec les paramètres puis supprimer les deux lignes suivantes. À part ça, ça fonctionne très bien. – yzet00
Heureux que vous le trouviez utile. Oui, vous avez raison, j'aurais dû déclarer 'termData' comme mutable, mais dans ce cas vous avez raison, il peut être initialisé avec les valeurs tout de suite, donc c'est une solution encore plus propre. –