Cette réponse concerne les questions posées dans les commentaires de l'OP, post:
Pour forcer une vue à apparaître dans un oriention mettre ce qui suit dans viewWillAppear:
UIApplication* application = [UIApplication sharedApplication];
if (application.statusBarOrientation != UIInterfaceOrientationPortrait)
{
UIViewController *c = [[UIViewController alloc]init];
[self presentModalViewController:c animated:NO];
[self dismissModalViewControllerAnimated:NO];
}
C'est un peu un hack, mais cela oblige l' UIViewController
à être présenté en portrait, même si le contrôleur précédent était de paysage
Mise à JOUR pour iOS7
Les méthodes ci-dessus sont désormais obsolète, donc pour iOS 7 utiliser les éléments suivants:
UIApplication* application = [UIApplication sharedApplication];
if (application.statusBarOrientation != UIInterfaceOrientationPortrait)
{
UIViewController *c = [[UIViewController alloc]init];
[c.view setBackgroundColor:[UIColor redColor]];
[self.navigationController presentViewController:c animated:NO completion:^{
[self.navigationController dismissViewControllerAnimated:YES completion:^{
}];
}];
}
Il est intéressant de noter, au moment de l'écriture, soit de les présenter ou de les rejeter doivent être animés. Si ni l'êtes, alors vous obtiendrez un écran blanc. Aucune idée de pourquoi cela fait ça marche, mais il ne! L'effet visuel est différent en fonction de ce qui est animé.