Réponse historique uniquement. Spectaculairement dépassée.
Veuillez noter que cette réponse est maintenant largement dépassée/.
Cette réponse est seulement une curiosité historique .
Nouvelles excitantes ! Comme découvert par Andrew ci-dessous, ce problème a été corrigé par Apple dans la version 4.0+.
Il semblerait qu'il ne soit plus nécessaire de forcer la taille de la vue sur chaque vue, et le problème spécifique et sérieux du paysage "ne fonctionnant que la première fois" a été résolu.
Depuis avril 2011, il n'est plus possible de tester ou même de construire quoi que ce soit en dessous de la version 4.0, donc la question est purement une curiosité historique. C'est incroyable le nombre de problèmes que cela a causé aux développeurs pendant si longtemps !
Voici la discussion et la solution originales. Cela n'a plus rien à voir maintenant, car ces systèmes ne sont même pas opérationnels.
Il est EXTRÊMEMENT DIFFICILE de faire fonctionner ce système complètement - il y a au moins trois problèmes/bugs en jeu.
Essayez ceci. constructeur d'interface conception de paysage
Notez en particulier que là où il est dit "et vous devez utiliser shouldAutorotateToInterfaceOrientation correctement partout" ça veut dire partout, toutes vos vues en plein écran.
J'espère que cela vous aidera dans ce cauchemar !
Un rappel important du problème supplémentaire bien connu qui se pose ici : si vous essayez de passer d'un service à l'autre, vous devez vous assurer qu'il n'y a pas de problème. PLUS D'UN vue (tous les paysages), CELA NE FONCTIONNE TOUT SIMPLEMENT PAS . Il est essentiel de s'en souvenir, sinon vous perdrez des jours à résoudre ce problème. Ce n'est littéralement PAS POSSIBLE. C'est le plus grand bogue ouvert, connu, de la plateforme iOS. Il n'y a littéralement aucun moyen d'obliger le matériel à faire en sorte que la deuxième vue que vous chargez soit un paysage. La solution de contournement ennuyeuse mais simple, et ce que vous devez faire, est d'avoir un UIViewController maître trivial qui ne fait rien d'autre que de rester là et de vous laisser passer d'une vue à l'autre.
En d'autres termes, dans iOS à cause d'un bug majeur connu :
[window addSubview:happyThing.view];
[window makeKeyAndVisible];
Vous ne pouvez le faire qu'une fois . Plus tard, si vous essayez de supprimer happyThing.view, et de mettre à la place newThing.view, cela ne fonctionne pas - et c'est tout. La machine ne fera jamais pivoter la vue en paysage. Il n'y a pas de solution miracle, même Apple ne peut pas le faire fonctionner. La solution de contournement que vous devez adopter est d'avoir un UIViewController global qui reste simplement là et qui contient vos différentes vues (happyThing, newThing, etc.). J'espère que cela vous aidera !
6 votes
Pour tous les futurs lecteurs, veuillez noter que ce fameux problème est maintenant résolu par Apple à partir de 2011. Notez le projet de test dans la réponse ci-dessous.