iOS6: AdmiteInterfaceOrientaciones no funciona (se invoca pero la interfaz sigue girando)

En mi aplicación tengo varias vistas, algunas vistas deben admitir tanto vertical como horizontal, mientras que otras vistas solo deben admitir vertical. Así, en el resumen del proyecto, he seleccionado todas las orientaciones.

El siguiente código funcionó para deshabilitar el modo horizontal en un controlador de vista dado antes de iOS 6:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    // Return YES for supported orientations
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

Dado que shouldAutorotateToInterfaceOrientation estaba en desuso en iOS6, he reemplazado lo anterior con:

-(NSUInteger)supportedInterfaceOrientations{
    return UIInterfaceOrientationMask.Portrait;
}

Este método se llama correctamente cuando aparece la vista (puedo establecer un punto de interrupción para garantizar esto), pero la interfaz aún gira al modo horizontal, independientemente del hecho de que estoy devolviendo la máscara solo a los modos de retrato. ¿Qué estoy haciendo mal?

Parece que actualmente es imposible crear una aplicación que tenga diferentes requisitos de orientación por vista. Parece que solo se adhiere a las orientaciones especificadas en el resumen del proyecto.

Respuestas a la pregunta(15)

Su respuesta a la pregunta