¿Cómo puedo deshabilitar la orientación horizontal?

Estoy haciendo una aplicación para iPhone y la necesito para estar en modo vertical, de modo que si el usuario mueve el dispositivo de lado, no gira automáticamente. ¿Cómo puedo hacer esto?

Para deshabilitar las orientaciones para un controller de vista en particular , ahora debe anular supportedInterfaceOrientations y prefernetworkingInterfaceOrientationForPresentation .

 - (NSUInteger) supportedInterfaceOrientations { // Return a bitmask of supported orientations. If you need more, // use bitwise or (see the commented return). return UIInterfaceOrientationMaskPortrait; // return UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskPortraitUpsideDown; } - (UIInterfaceOrientation) prefernetworkingInterfaceOrientationForPresentation { // Return the orientation you'd prefer - this is what it launches to. The // user can still rotate. You don't have to implement this method, in which // case it launches in the current orientation return UIInterfaceOrientationPortrait; } 

Si estás apuntando a algo anterior a iOS 6, deseas el método shouldAutorotateToInterfaceOrientation: . Cambiando cuando vuelve sí, usted determinará si girará a dicha orientación. Esto solo permitirá la orientación vertical normal.

 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { // Return YES for supported orientations return (interfaceOrientation == UIInterfaceOrientationPortrait); // Use this to allow upside down as well //return (interfaceOrientation == UIInterfaceOrientationPortrait || interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown); } 

Tenga en count que shouldAutorotateToInterfaceOrientation: ha quedado en desuso en iOS 6.0 .

Xcode 5 y superior

  • Haga clic en su proyecto en Project Navigator en la barra lateral izquierda para abrir la configuration del proyecto
  • Vaya a la pestaña General .
  • Desactive las opciones que no desea en la sección Información de implementación , en Orientación del dispositivo

captura de pantalla que muestra dónde hacer clic

Xcode 4 y siguientes

Para aquellos que se lo perdieron: puede usar la pantalla de configuration del proyecto para corregir orientaciones en toda la aplicación (no es necesario anular los methods en todos los controlleres):

introduzca la descripción de la imagen aquí

Es tan simple como alternar las orientaciones de la interfaz compatibles. Puede encontrar haciendo clic en su Proyecto en el panel izquierdo> el destino de la aplicación> pestaña Resumen.

Eliminar el método shouldAutorotateToInterfaceOrientation la shouldAutorotateToInterfaceOrientation de su class shouldAutorotateToInterfaceOrientation por completo. Si no planeas rotar, entonces no tiene sentido tener el método en tu class, cuanto less código mejor, las cosas se mantienen limpias.

Swift 3 Si tiene un controlController, subclass de esta forma (solo para retrato):

 class CustomNavigationViewController: UINavigationController { override var supportedInterfaceOrientations: UIInterfaceOrientationMask { return UIInterfaceOrientationMask.portrait } override var prefernetworkingInterfaceOrientationForPresentation: UIInterfaceOrientation { return UIInterfaceOrientation.portrait } }