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!

Était-ce utile?

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];
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top