Je suis en train de passer l'objet de base de données de la liste dans le tableViewController à TabBarController pour analyser dans le childViews, je joue Segue à TabBarController sous-classéObjet de passage de base de données de tableViewController à TabBarController
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if let objs = controller.fetchedObjects , objs.count > 0 {
let casE = objs[indexPath.row]
performSegue(withIdentifier: "showDetail", sender: casE)
}
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "showDetail" {
if let destination = segue.destination as? CaseDetail {
if let casE = sender as? Case {
destination.casE = casE
}
}
}
}
donc passer à tabBarController
class CaseDetail: UITabBarController {
var casE: Case?
}
Et essayer de l'obtenir chez l'enfant considère viewDidLoad
override func viewDidLoad() {
super.viewDidLoad()
let tbvc = self.tabBarController as! CaseDetail
casE = tbvc.casE
print(casE as Any)
}
Mais encore je n'ai rien, est-ce que quelqu'un connaît d'autres méthodes de transmission de données?
Nous vous remercions de vos conseils et de votre aide!
Imprime la valeur de destination juste avant 'destination.casE = casE' et la valeur de tbvc juste avant' casE = tbvc.casE'. Les adresses sont-elles les mêmes? Si oui, qui imprime en premier? –
adresses ne sont pas les mêmes, d'abord va "destination", puis "tbvc", mais qu'est-ce que cela signifie? destination TBVC et a obtenu cet avertissement Avertissement: tentative de présenter sur dont la vue est pas dans la fenêtre hiérarchie! –
Just66
En préparation (pour la section: UIStoryboardSegue, expéditeur: Any?) Ajoutez une instruction d'impression, par ex. print ("a") et dans viewDidLoad() ajoutent une autre instruction d'impression par exemple. imprimer ("b"). Voir si la séquence est un -> b ou b -> un –