Vous avez à charge un point de vue, puis vérifiez l'orientation et de charger une autre si besoin. Vous vérifiez l'orientation en shouldAutorotateToInterfaceOrientation:
retour oui si vous souhaitez faire pivoter.
J'utilise une manette de navigation pour gérer la transition. Si j'ai le portrait de la vue et de l'appareil tourne, je pousse le paysage de la vue et de la pop à la mode paysage quand il retour à portrait.
Edit:
Je retourne OUI pour toutes les orientations dans
shouldAutorotateToInterfaceOrientation:
mais cela sera appelée lors de l'application
lance? Ne vous poussez votre point de vue à l'intérieur de
de cette fonction?
L'orientation des constantes ne sont pas globals vous interrogez mais plutôt une partie des messages envoyés au contrôleur par le système. En tant que tel, vous ne pouvez pas facilement détecter l'orientation avant de une-vue-contrôleur de charge. Au lieu de cela, vous pouvez brancher l'application de se lancer dans une orientation particulière (généralement portrait), puis immédiatement à tourner. (Voir le navigateur Safari mobile. Il démarre toujours en mode portrait et tourne ensuite vers le paysage.)
Ce sont les deux méthodes que j'utilise pour échanger mes vues portrait et paysage.
Tous les trois vue dans les contrôleurs de cette méthode:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Return YES for supported orientations
return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}
Le portrait a ceci:
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
if (toInterfaceOrientation==UIInterfaceOrientationLandscapeRight) {
[self.nav pushViewController:rightLVC animated:NO];
}
if (toInterfaceOrientation==UIInterfaceOrientationLandscapeLeft) {
[self.nav pushViewController:leftLVC animated:NO];
}
}
Chaque paysage contrôleur a ceci:
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
if (toInterfaceOrientation==UIInterfaceOrientationPortrait) {
[self.nav popViewControllerAnimated:NO];
}
L'application démarre en mode portrait. Si l'orientation de l'appareil est paysage, il pousse le approprié paysages. Lorsque l'appareil tourne le dos au portrait, il apparaît le paysage. Pour l'utilisateur, il ressemble à la même vue de la réorganisation de lui-même pour une autre orientation.