Pergunta

Problema rápido:

Eu tenho um uitabbarcontroller com 2 controladores de navegação [vamos chamá -los de controlador para a esquerda e direita

No controlador esquerdo selecionado padrão, posso pressionar um novo controlador de exibição que detecta a orientação da interface.

No controlador certo, posso empurrar o mesmo controlador de visualização, mas não detectará a orientação da interface, ou, nesse caso, ele nem sequer entra no método do deveriio de interface deve

Haaalp !!

Se for de alguma relevância, o contollador de exibição que estou pressionando use a propriedade HidesBottombarwenpushed.

Foi útil?

Solução

O seu UITABBARController implementa o giro automático? Qualquer Child ViewController que deseja implementar o AutoToTate deve ter seus pais implementar o autorotate.

Outras dicas

Provavelmente esse é o seu problema:

Os controladores de barra de guias suportam uma orientação de retrato por padrão e não giram para uma orientação da paisagem A menos que todos os controladores de visão raiz suportem tal orientação. Quando ocorre uma mudança de orientação do dispositivo, o controlador de barra de guias consulta sua matriz de controladores de visão. Se qualquer um deles não suportar a orientação, o controlador de barra de guias não altera sua orientação.

A solução é substituir o seguinte método em todos os controladores de exibição que levam à sua visão:

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

Por exemplo, em vez disso, usando o padrão UITabBarController No IB, substitua -o por sua própria subclasse contendo apenas o método acima.

Estou um pouco atrasado para a festa, mas encontrei um problema com a autorotação no Startup para um aplicativo de barra de guias que eu queria sempre correr em retrato.

O Plist do aplicativo possui as configurações necessárias para iniciar e permitir apenas o modo retrato, e todos os meus controladores de exibição permitem apenas o modo retrato. No entanto, quando iniciei o aplicativo segurando meu iPhone na paisagem, o aplicativo começou em retrato, mas depois girei para a paisagem!

Em vez de subclasse UITabBarController, Eu simplesmente substitui UITabBarController's shouldAutorotateToInterfaceOrientation: método usando uma categoria na aula UITabBarController. Incluí este código no meu delegado de aplicativo:

@implementation UITabBarController(UITabBarControllerCategory)

-(BOOL)shouldAutorotateToInterfaceOrientation:
                 (UIInterfaceOrientation)toInterfaceOrientation
{
    return (toInterfaceOrientation == UIInterfaceOrientationPortrait);
}

@end

Funciona lindamente e é bastante leve.

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