Compatible con iOS 9. InterfaceOrientations no funciona

Resuelto Bryan asked hace 55 años • 5 respuestas

Tengo un UIViewControllercon 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í?

Bryan avatar Jan 01 '70 08:01 Bryan
Aceptado

Entonces el problema era que había definido las orientaciones permitidas que info.plistaparentemente anulan cualquier cosa que hagas en cualquier otro lugar del proyecto.

Para corregir el problema, eliminé las entradas info.plisty las definí en la configuración del proyecto. Ahora todo funciona como se esperaba.

Bryan avatar Sep 25 '2015 12:09 Bryan

No creo que la respuesta de Bryan funcione, ya que cambiar las orientaciones en la configuración del proyecto también cambia, info.plistcomo 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 viewde forma predeterminada en un dispositivo iPad en particular; consulte los documentos de Apple aquí .

ingrese la descripción de la imagen aquí Esto split viewobligó 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.plistconfiguración general o en el objetivo, y luego split viewes compatible de forma predeterminada, ignorará la configuración de orientación supportedInterfaceOrientationsen su viewController y admitirá todas las orientaciones.

Como está escrito en el documento, si verificó Requires full screenla configuración de su objetivo, entonces su aplicación no será compatible split view. Ahora puede controlar las orientaciones en el código nuevamente. ingrese la descripción de la imagen aquí

Xingxing avatar Jul 08 '2016 06:07 Xingxing