presentModalViewController viewDidLoad pas appelé
-
20-09-2019 - |
Question
J'ai un événement qui appelle une vue apparaître, mais l'événement -viewdidload
n'apparaît pas comme prévu chaque fois qu'il est appelé. Voici la méthode que j'utilise pour appeler ...
[self presentModalViewController:addItemViewController animated:YES];
puis à l'intérieur du addItemViewController, le procédé est
- (void)viewDidLoad {
NSLog(@"alright, lad!");
}
Pour fermer la vue, j'ai un bouton avec le code
- (IBAction)cancel {
[self dismissModalViewControllerAnimated:YES];
}
le « bien, mon garçon » journal est montré pour la première fois la vue apparaît, mais jamais quand il est lancé. Y at-il une méthode que je peux utiliser pour laisser l'application « oublier » de la vue? Ou devrais-je utiliser une autre méthode de charge? J'ai essayé loadview (je crois), mais qui avait un écran vide ...
Merci pour toute aide!
La solution
viewDidLoad est appelée uniquement lorsque la vue est d'abord instancié. Si vous n'êtes pas recréer le contrôleur de vue chaque fois, vous ne l'obtenez appelé une fois (et appelé à nouveau si vous obtenez un avertissement de mémoire, et la vue est nil'd out). Vous voulez probablement utiliser viewWillAppear: ou viewDidAppear:.
Autres conseils
Assurez-vous que vous appelez la superclasse dans chacune de ces méthodes, par exemple
- (void)viewWillAppear:(BOOL)animated {
NSLog(@"view appeared");
[super viewWillAppear:animated];
}