Dans une séquence typique dans iOS, le contrôleur de vue A
est en cours de numérotation à B
, et je remplace prepare(for:sender:)
dans A
, pour transmettre des données à B
.Dans la préparation de segue, comment transmettre des données à un enfant UIViewController?
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let b = segue.destination as! ViewControllerB
b.someData = ...
Mais si B
a un contrôleur de vue de l'enfant intégré, il ne sera pas encore chargé à ce moment. Existe-t-il une méthode recommandée pour transmettre des données au contrôleur de vue enfant intégré?
Je pourrais définir les champs sur ViewControllerB
, puis les passer à l'enfant dans sa méthode viewDidLoad
. (À ce stade, le contrôleur de vue enfant est présent dans le tableau childViewControllers
de B). Mais, cela me semble un peu moche.
Qu'en est-communication directe entre les petits-enfants et les grands-parents avec un délégué? – the4kman
Eh bien, si vous avez A-> B-> C, et que vous avez besoin de transmettre des données de A-> C, vous pouvez régler ceci à B, et à l'intérieur B faites de même pour mettre à C. –