Pergunta

Estou tentando criar um aplicativo para iPhone que tenha duas subviews na janela principal. Cada visualização possui sua própria subclasse UIViewController associada a ela. Além disso, dentro da implementação de cada controlador, adicionei o seguinte método:

-(BOOL)shouldAutorotateToInterfaceOrientation:
 (UIInterfaceOrientation)interfaceOrientation {
    return YES;
   }

Assim, eu esperaria que ambos os pontos de vista respondam a mudanças na orientação. No entanto, este não é o caso. Apenas o primeiro A exibição adicionada à janela principal do aplicativo responde à orientação. (Se eu trocar a ordem em que as visualizações são adicionadas, apenas a outra visão responde. Em outras palavras, serão trabalhadas-mas apenas uma de cada vez.)

Por que é isso? Não é possível lidar com as mudanças de orientação de mais de uma visão?

Obrigado!

EDIT: Alguém tinha essa pergunta, então estou copiando minha solução aqui:

Consegui abordar esse problema fornecendo uma visualização raiz e um controlador de visualização raiz com o método "deveugotortato ..." e adicionando minhas outras visualizações como subviews à exibição root. Os subviews herdam o comportamento de rotatividade automática, e seus controladores de visão associados não precisam substituir "deveriam ..."

Foi útil?

Solução 2

Finalmente vou postar minha solução aqui:

Basicamente, tudo se resumia a ter um UiviewController "raiz". Nisso, eu tenho o método:

-(BOOL)shouldAutorotateToInterfaceOrientation:
(UIInterfaceOrientation)interfaceOrientation {
        return YES;
}

Também adicionei as visualizações que queria auto-rotate como subviews para o UIView do UIViewContoller da raiz. Essas subviews também têm controladores de exibição, mas fazem não sobrepor shouldAutorotateToInterfaceOrientation. De fato, adicionar esse método a esses controladores de visualização parece não ter nenhum efeito. Somente a visão raiz contoller's shouldAutorotateToInterfaceOrientation Parece funcionar e todas as subvisões são giradas corretamente.

Outras dicas

Você precisa substituir o método do devedor da interioridade deve nos três controladores que você possui.

Você pode tentar implementar este método na classe, que a visualização contém as visualizações do seu ViewController

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top