Compatible con iOS 9. InterfaceOrientations no funciona
Tengo un UIViewController
con el siguiente código:
- (BOOL) shouldAutorotate {
return NO;
}
-(NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationPortrait;
}
No estoy usando un UINavigationController
. Cuando se muestra esto UIViewController
, el dispositivo seguirá girando en posición horizontal. Estoy apuntando a iOS 9, ¿cuál es el problema aquí?
Entonces el problema era que había definido las orientaciones permitidas que info.plist
aparentemente anulan cualquier cosa que hagas en cualquier otro lugar del proyecto.
Para corregir el problema, eliminé las entradas info.plist
y las definí en la configuración del proyecto. Ahora todo funciona como se esperaba.
No creo que la respuesta de Bryan funcione, ya que cambiar las orientaciones en la configuración del proyecto también cambia, info.plist
como comentó @mrhangz.
Si el problema es solo iOS9, probablemente se deba a la nueva función de iOS9 en iPad llamada Split view
. iOS9 se habilita Split view
de forma predeterminada en un dispositivo iPad en particular; consulte los documentos de Apple aquí .
Esto split view
obligó a su aplicación a admitir todas las orientaciones en todas las vistas una vez adoptadas. Entonces, si configura el soporte de todas las orientaciones en la info.plist
configuración general o en el objetivo, y luego split view
es compatible de forma predeterminada, ignorará la configuración de orientación supportedInterfaceOrientations
en su viewController y admitirá todas las orientaciones.
Como está escrito en el documento, si verificó Requires full screen
la configuración de su objetivo, entonces su aplicación no será compatible split view
. Ahora puede controlar las orientaciones en el código nuevamente.