iOS6: supportedInterfaceOrientations não está funcionando (é chamado, mas a interface ainda gira)
No meu aplicativo, tenho várias visualizações, algumas exibições precisam oferecer suporte a retrato e paisagem, enquanto outras exibições precisam oferecer suporte apenas a retrato. Assim, no resumo do projeto, selecionei todas as orientações.
O código abaixo funcionou para desativar o modo paisagem em um determinado controlador de visualização antes do iOS 6:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// Return YES for supported orientations
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
Como shouldAutorotateToInterfaceOrientation foi preterido no iOS6, substituímos o acima por:
-(NSUInteger)supportedInterfaceOrientations{
return UIInterfaceOrientationMask.Portrait;
}
Esse método é chamado corretamente quando a exibição é exibida (posso definir um ponto de interrupção para garantir isso), mas a interface ainda gira para o modo paisagem, independentemente do fato de eu estar retornando a máscara apenas para modos de retrato. O que estou fazendo de errado?
Parece que atualmente é impossível criar um aplicativo que tenha diferentes requisitos de orientação por visualização. Parece apenas aderir às orientações especificadas no resumo do projeto.