Resposta histórica apenas. Espetacularmente desatualizado.
Observe que esta resposta agora está extremamente desatualizada /
Essa resposta é apenas uma curiosidade histórica .
Notícia emocionante! Conforme descoberto por Andrew abaixo, esse problema foi corrigido pela Apple na versão 4.0+.
Pareceria que NÃO é mais necessário forçar o tamanho da vista em cada vista, e o sério problema específico da paisagem "apenas trabalhando na primeira vez" foi resolvido.
Em abril de 2011, não era possível testar ou mesmo construir nada abaixo de 4.0, então a questão é puramente uma curiosidade histórica. É incrível quantos problemas isso causou aos desenvolvedores por tanto tempo!
Aqui está a discussão e solução originais. Isso é totalmente irrelevante agora, pois esses sistemas nem mesmo são operáveis.
É EXTREMAMENTE DIFÍCIL fazer esse trabalho totalmente - há pelo menos três problemas / bugs em jogo.
tente isso .. interface builder landscape design
Observe em particular que onde diz "e você precisa usar shouldAutorotateToInterfaceOrientation corretamente em todos os lugares" , significa em todos os lugares, todas as suas visualizações em tela cheia.
Espero que ajude neste pesadelo!
Um lembrete importante do problema ADICIONAL bem conhecido em questão aqui: se você está tentando alternar entre MAIS DE UMA vista (toda paisagem), SIMPLESMENTE NÃO FUNCIONA . É fundamental se lembrar disso ou perderá dias com o problema. Literalmente NÃO É POSSÍVEL. É o maior bug aberto e conhecido na plataforma iOS. Literalmente, não há como fazer com que o hardware torne a segunda visualização que você carrega, paisagem. A solução alternativa irritante, mas simples, e o que você deve fazer, é ter um UIViewController mestre trivial que não faz nada além de ficar parado e permitir que você alterne entre suas visualizações.
Em outras palavras, no iOS devido a um grande bug conhecido:
[window addSubview:happyThing.view];
[window makeKeyAndVisible];
Você pode fazer isso apenas uma vez . Mais tarde, se você tentar remover happyThing.view e, em vez disso, inserir newThing.view, ISSO NÃO FUNCIONA - E ISSO É ISSO. A máquina nunca girará a vista para a paisagem. Não há conserto de truques, nem mesmo a Apple consegue fazer funcionar. A solução alternativa que você deve adotar é ter um UIViewController geral que simplesmente fique lá e mantenha suas várias visualizações (happyThing, newThing, etc). Espero que ajude!