Diferente orientación del dispositivo según el dispositivo (iPhone o iPad)

Estoy trabajando en un proyecto Universal con estos requisitos:

  • Para iPhone, solo quiero la orientación vertical.
  • Para iPad, solo paisajes.

¿Cómo hago eso para iOS 8 (Swift)?

Siguiendo el consejo de @ScarletMerlin, cambiar las keys en info.plist es, en mi opinión, la mejor solución para los requisitos que tengo que cumplir (tipo de orientación fija para cada tipo de dispositivo).

Aquí hay una pantalla de printing de la configuration que uso. Tal vez pueda ayudar a otros desarrolladores con dudas similares.

Configuración en el archivo info.plist

El código fuente de Reventvent se ve así:

<key>UISupportedInterfaceOrientations</key> <array> <string>UIInterfaceOrientationPortrait</string> </array> <key>UISupportedInterfaceOrientations~ipad</key> <array> <string>UIInterfaceOrientationLandscapeLeft</string> <string>UIInterfaceOrientationLandscapeRight</string> </array> 

Mi sugerencia es verificar el hardware en el que se está ejecutando la aplicación. Para hacerlo, use esta línea de código.

 if([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPad) 

Luego, una vez que haya detectado su hardware, bloquee la orientación usando the shouldAutorotateToInterfaceOrientation:

 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)orientation { return UIInterfaceOrientationIsLandscape(orientation); } 

Solo como un ejemplo, puedes hacer esto

 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)orientation { if([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPad) return UIInterfaceOrientationIsLandscape(orientation); // If iPad else return UIInterfaceOrientationIsPortrait(orientation); // Else, it is an iPhone }