Startup de aplicativos de paisagem estranha uitabbarcontroller
-
16-09-2019 - |
Pergunta
Meu aplicativo é bastante simples, mas tenho alguns problemas quando começa. Eu ajustei o info.plist para ser paisagístico, mas parece ignorar a ordem. De fato, quando o aplicativo está carregando o simulador é paisagístico, mas retorna no modo retrato.
Esta é a hierarquia dos pontos de vista e controladores:
- MainViewController (estende o UitabBarController apenas para substituir o devedor do interior :)
- Três uabableViewControllers estendidos como guias (também aqueles que têm a face do inteiro
Se eu meio que forçar a orientação do dispositivo para a paisagem com:
[Uidevice CurrentDevice] Setorientation: UiInterfaceRientationLandsCaperright];
Então, por um instante, o simulador pisca no modo retrato e depois é paisagístico. O problema é que, dessa maneira, as animações de rotação automática começam, o que é algo que eu não posso tolidar. Eu só quero uma aplicação fixa e paisagística.
Alguma pista? Estou esquecendo de algo?
Solução
Experimente o seguinte. Não sei por que não funciona para você
1) Defina a chave da UiInterfaceRentação
Para UiInterfaceRientationlandsCaperlight em seu arquivo .plista
2) Substituir o seu método UitabBarController deve ser o método do método; A seguir, o código lida apenas com a guia zero e um, e apenas com um controlador: se você possui um controlador de navegação e deseja controlar diferentes controladores que podem estar na pilha, você deve modificar o código de acordo
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
BOOL tabZeroController = [[[self.viewControllers objectAtIndex:0] visibleViewController] isKindOfClass:[YourTabZeroTableViewController class]];
BOOL tabOneController = [[[self.viewControllers objectAtIndex:1] visibleViewController] isKindOfClass:[YourTabOneTableViewController class]];
if(self.selectedIndex == 0 && tabZeroController)
return (interfaceOrientation == UIInterfaceOrientationLandscapeRight);
if(self.selectedIndex == 1 && tabOneController)
return (interfaceOrientation == UIInterfaceOrientationLandscapeRight);
return NO;
}
2) Configuração
[[UIDevice currentDevice] setOrientation:UIInterfaceOrientationLandscapeRight];
No seu delegate, o método ApplicationDidfinishlaunching () é necessário apenas para o simulador, não em um dispositivo
3) Adicione o seguinte deve ser o seguinte (método) em seus controladores
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationLandscapeRight);
}
4) Execute o aplicativo no seu dispositivo e verifique se ele funciona corretamente usando o item do menu de hardware, gire para a esquerda e gire para a direita. Você deve ver a tela no modo de paisagem.
Outras dicas
Talvez isso possa ajudarhttp://www.dejoware.com/blogpages/files/iphone_programming_landscape_view_tutorial.html