Je suis surpris que personne n'ait encore trouvé cette réponse :
Dans tous mes tests, lors de la suppression d'un contrôleur de vue modale, l'orientation préférée du contrôleur de vue parent définie dans shouldAutorotateToInterfaceOrientation
est honorée même lorsqu'elle fait partie d'un UINavigationController. La solution est donc simple :
Créez un UIViewController factice avec un UIImageView pour un arrière-plan. Définissez l'image sur l'image default.png que votre application utilise au démarrage.
Lorsque viewWillAppear
est appelé dans votre contrôleur de vue racine, présentez simplement le contrôleur de vue factice sans animation.
lorsque viewDidAppear
est appelé dans votre contrôleur de vue factice, fermez le contrôleur de vue avec une belle animation de fondu enchaîné.
Non seulement ça marche, mais ça a l'air bien ! BTW, juste pour clarifier, je fais le viewWillAppear
du contrôleur de vue racine comme ceci :
- (void)viewWillAppear:(BOOL)animated
{
if ( dummy != nil ) {
[dummy setModalTransitionStyle:UIModalTransitionStyleCrossDissolve];
[self presentModalViewController:dummy animated:NO];
[dummy release];
dummy = nil;
}
...
}