J'ai un UITabBarController qui imbrique une UIView-Sous-classe (ImageViewer) comme son troisième onglet.Pourquoi viewDidAppear dans UITabBarController exec avant l'affichage de la vue?
Dans ce ImageViewer je Sous appeler la méthode viewDidAppear
:
- (void) viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
/* ... start custom code ...
NSLog(@"viewDidAppear tag 1 passed); /* BREAKPOINT 1 here
[myUIActivityIndicator stopAnimating];
NSLog(@"viewDidAppear tag 2 passed); /* BREAKPOINT 2 here
/* ... end custom code ...
}
la méthode est appelée automatiquement, mais étrangement la vue apparaît seulement après cette méthode a été traitée complètement?
Lorsque je règle les points d'arrêt (1 et 2) comme indiqué, le traitement (lors de la sélection de l'onglet) s'arrête alors que l'onglet précédent est toujours affiché. Ce n'est qu'en cliquant sur continuer après le deuxième point d'arrêt que la vue sera affichée. (Pour info les NSLogs sont réalisées immeldiately).
Dans ce cas viewDidAppear
se comporte plus comme viewWillAppear
....
Tous les indices de ce qui pourrait se passer?
Vive
Appellez-vous vraiment la méthode comme vous le suggérez? – blindjesse
Non, la méthode est appelée automatiquement après la sélection de l'onglet 3. – iFloh
On dirait que le système n'a tout simplement pas trouvé le temps de redessiner l'écran pour le moment. C'est probablement pourquoi vous ne voyez rien. – JustSid