J'ai une application TabBarController avec 4 vues. J'ai mis tous les 4 viewControllers la méthode autorotation retour oui:Rotation de toutes les vues d'un TabBarController
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {
return YES;
}
Merci à cela, maintenant, quand je tourne l'iPhone la rotation fonctionne, et même le TabBar est mis en rotation.
Dans chaque vue unique que je peux utiliser le code suivant pour mettre à jour pour afficher lorsque la rotation se produit:
- (void) willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
[self adjustViewsForOrientation:toInterfaceOrientation];
}
- (void) adjustViewsForOrientation:(UIInterfaceOrientation)orientation {
if (orientation == UIInterfaceOrientationLandscapeLeft ||
orientation == UIInterfaceOrientationLandscapeRight) {
//Here i can update the view when it goes to landscape
}
else if (orientation == UIInterfaceOrientationPortrait ||
orientation == UIInterfaceOrientationPortraitUpsideDown) {
//Here i can update the view when it goes to portrait
}
}
Le problème est que quand je fais la rotation, seule la vue en cours d'affichage est mise à jour. Si plus tard je change de vue en cliquant sur l'onglet, je vois la vue n'est pas mise à jour pour la nouvelle orientation.
Y a-t-il un moyen de rendre toutes les vues conscientes de l'orientation changée?
Marquer comme réponse. – bstahlhood
Je dois attendre jusqu'à demain pour le faire! – Abramodj
Je suppose que cela n'est arrivé que pour les vues que vous avez déjà visitées, mais pas pour celles que vous avez visitées pour la première fois. – fogelbaby