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.

questionAnswers(15)

yourAnswerToTheQuestion