IOS 6 força a orientação do dispositivo para paisagem
Eu dei um aplicativo com 10 controladores de visualização. Eu uso o controlador de navegação para carregar / descarregar.
Todos, exceto um, estão no modo retrato. Suponha que o 7º VC esteja na paisagem. Eu preciso que seja apresentado na paisagem quando é carregado.
Por favor, sugerir uma maneira de forçar a orientação ir de retrato para paisagem no IOS 6 (e também será bom trabalhar no iOS 5).
Aqui está como eu estava fazendo issoANTES IOS 6:
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
UIViewController *c = [[[UIViewController alloc]init] autorelease];
[self presentModalViewController:c animated:NO];
[self dismissModalViewControllerAnimated:NO];
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation{
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
Apresentar e dispensar um VC modal estava forçando o aplicativo a rever sua orientação.shouldAutorotateToInterfaceOrientation
estava sendo chamado.
O que eu tentei no IOS 6:
- (BOOL)shouldAutorotate{
return YES;
}
-(NSUInteger)supportedInterfaceOrientations{
return UIInterfaceOrientationMaskLandscape;
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation{
return UIInterfaceOrientationLandscapeLeft;
}
Na carga, o controlador fica no retrato. Depois de rodar o dispositivo, a orientação muda apenas ok. Mas preciso fazer com que o controlador gire automaticamente para o modo paisagem ao carregar, assim o usuário terá que girar o dispositivo para ver os dados corretamente.
Outro problema: depois de girar o dispositivo de volta ao retrato, a orientação vai para retrato, embora eu tenha especificadosupportedInterfaceOrientations
sóUIInterfaceOrientationMaskLandscape
. Por que isso acontece?
Além disso,NENHUM de mais de 3 métodos estão sendo chamados.
Alguns dados (úteis):
No meu arquivo plist eu especifiquei 3 orientações - tudo menos de cabeça para baixo.O projeto foi iniciado no Xcode 4.3 IOS 5. Todas as classes incluindo xibs foram criadas antes do Xcode 4.5 IOS 6, agora eu uso a última versão.No arquivo plist, a barra de status está definida como visível.No arquivo xib (o que eu quero estar na paisagem), a barra de status é "None", a orientação é definida como paisagem.Qualquer ajuda é apreciada. Obrigado.