Antes do iOS 8, usamos o código abaixo em conjunto com os métodos de delegação supportedInterfaceOrientations e shouldAutoRotate para forçar a orientação do aplicativo a qualquer orientação específica. Usei o trecho de código abaixo para girar programaticamente o aplicativo para a orientação desejada. Em primeiro lugar, estou alterando a orientação da barra de status. E então, apenas apresentar e descartar imediatamente uma vista modal gira a vista para a orientação desejada.
[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight animated:YES];
UIViewController *c = [[UIViewController alloc]init];
[self presentViewController:vc animated:NO completion:nil];
[self dismissViewControllerAnimated:NO completion:nil];
Mas isso está falhando no iOS 8. Além disso, tenho visto algumas respostas no estouro de pilha, nas quais as pessoas sugeriam que devemos sempre evitar essa abordagem a partir do iOS 8.
Para ser mais específico, meu aplicativo é um tipo universal de aplicativo. Existem três controladores no total.
Controlador First View - Ele deve suportar todas as orientações no iPad e apenas retrato (botão home para baixo) no iPhone.
Controlador Second View - Ele deve suportar apenas paisagem em todas as condições
Controlador Third View - ele deve suportar apenas paisagem em todas as condições
Estamos usando o controlador de navegação para navegação na página. No primeiro controlador de exibição, em uma ação de clique no botão, estamos pressionando o segundo na pilha. Portanto, quando o segundo controlador de exibição chegar, independentemente da orientação do dispositivo, o aplicativo deverá bloquear apenas a paisagem.
Abaixo estão meus métodos shouldAutorotate
e supportedInterfaceOrientations
no segundo e terceiro controlador de exibição.
-(NSUInteger)supportedInterfaceOrientations{
return UIInterfaceOrientationMaskLandscapeRight;
}
-(BOOL)shouldAutorotate {
return NO;
}
Existe alguma solução para essa ou qualquer maneira melhor de bloquear um controlador de exibição em particular orientação para o iOS 8. Por favor, ajude !!