J'ai lu de nombreux messages concernant des personnes ayant des problèmes avec viewWillAppear
lorsque vous ne créez pas votre hiérarchie de vues juste C'est vrai. Mon problème est que je n'arrive pas à comprendre ce que ça veut dire.
Si je crée un RootViewController
et appeler addSubView
sur ce contrôleur, je m'attendrais à ce que la ou les vues ajoutées soient câblées pour viewWillAppear
événements.
Quelqu'un a-t-il un exemple d'une hiérarchie de vue programmatique complexe qui reçoit avec succès viewWillAppear
des événements à tous les niveaux ?
L'état des docs d'Apple :
Avertissement : Si la vue appartenant à un contrôleur de vues est ajoutée directement à une hiérarchie de vues, le contrôleur de vues ne recevra pas ce message. Si vous insérez ou ajoutez une vue à la hiérarchie des vues, et qu'elle possède un contrôleur de vues, vous devez envoyer ce message directement au contrôleur de vues associé. Si vous n'envoyez pas ce message au contrôleur de vue, toute animation associée ne pourra pas être affichée.
Le problème est qu'ils ne décrivent pas comment le faire. Que signifie "directement" ? Comment ajoute-t-on "indirectement" une vue ?
Je suis assez novice en matière de Cocoa et d'iPhone et ce serait bien s'il y avait des exemples utiles d'Apple en dehors des conneries basiques de Hello World.
0 votes
J'ai eu ce problème jusqu'à ce que je réalise que je comprenais mal l'utilisation prévue des sous-classes UIViewController en général. Consultez cette question. stackoverflow.com/questions/5691226/
7 votes
Attention ! !! Ce n'est plus vrai sous iOS 5 ! !! Appelle viewWillAppear et viewDidAppear automatiquement
0 votes
Pour tous ceux qui viennent ici aujourd'hui et qui développent pour iOS 13+, faites défiler la page jusqu'à la réponse de Bilal qui traite spécifiquement de ce sujet.