Réponse historique seulement. Spectaculairement démodé.
Veuillez noter que cette réponse est maintenant très obsolète /
Cette réponse n'est qu'une curiosité historique .
Nouvelles excitantes! Comme découvert par Andrew ci-dessous, ce problème a été résolu 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 grave problème spécifique du paysage "ne fonctionnant que la première fois" a été résolu.
Depuis avril 2011, il n'est pas possible de tester ou même de construire quoi que ce soit en dessous de 4.0, donc la question est purement une curiosité historique. C'est incroyable à quel point cela a causé des problèmes aux développeurs pendant si longtemps!
Voici la discussion originale et la solution. Ceci est totalement hors de propos maintenant, car ces systèmes ne sont même pas opérationnels.
Il est EXTRÊMEMENT DIFFICILE de faire en sorte que cela fonctionne pleinement - il y a au moins trois problèmes / bogues en jeu.
essayez ceci .. conception de paysage de constructeur d'interface
Notez en particulier que là où il est dit «et que vous devez utiliser shouldAutorotateToInterfaceOrientation correctement partout», cela signifie partout, toutes vos vues en plein écran.
J'espère que cela aide dans ce cauchemar!
Un rappel important du problème ADDITIONNEL bien connu à portée de main ici: si vous essayez de basculer entre PLUS D'UNE vue (tout paysage), CELA NE FONCTIONNE PAS SIMPLEMENT . Il est essentiel de s'en souvenir ou vous perdrez des jours sur le problème. Ce n'est littéralement PAS POSSIBLE. C'est le plus gros bogue ouvert et connu sur la plate-forme iOS. Il n'y a littéralement aucun moyen de faire en sorte que le matériel transforme la deuxième vue que vous chargez en paysage. La solution de contournement ennuyeuse mais simple, et ce que vous devez faire, est d'avoir un maître UIViewController trivial qui ne fait rien d'autre que rester là et vous permet de basculer entre vos vues.
En d'autres termes, sous iOS à cause d'un bug majeur connu:
[window addSubview:happyThing.view];
[window makeKeyAndVisible];
Vous ne pouvez le faire qu'une seule fois . Plus tard, si vous essayez de supprimer happyThing.view et que vous y mettez à la place newThing.view, CELA NE FONCTIONNE PAS - ET C'EST CELA. 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 se trouve simplement là et ne contient que vos différentes vues (happyThing, newThing, etc.). J'espère que ça aide!