2012-01-20 16 views
7

Estoy desarrollando una aplicación para iOS 5, que debe ejecutarse en modo apaisado. Mi problema es que no puedo hacer que se voltee inicialmente.Forzar la aplicación iOS para iniciar en modo apaisado

He probado la adición de la "orientación interfaz inicial" ajustado a "Paisaje (botón derecho del hogar)" y añadiendo el siguiente método a mi controlador de vista:

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

puedo envolver mi cabeza alrededor de cómo se se supone que funciona (He encontrado el código here)

También me pregunto cómo usar la "Orientación de dispositivos compatibles", disponible en la configuración del proyecto de Xcode 4.2, no parece hacer nada.

He estado buscando en el sitio web y no he podido encontrar un ejemplo que resuelva mi problema.

Gracias.

+0

http://stackoverflow.com/a/17628668/468724 –

Respuesta

16

En Info.plist archivo de la aplicación, agregue la clave UIInterfaceOrientation y establezca su valor en el modo paisaje. Para paisaje orientaciones, se puede establecer el valor de esta clave a UIInterfaceOrientationLandscapeLeft o UIInterfaceOrientationLandscapeRight.

Diseñe sus vistas en modo horizontal y asegúrese de que sus opciones de ajuste automático estén configuradas correctamente.

reemplazar el método de su controlador de vista shouldAutorotateToInterfaceOrientation: y volver SÍ sólo para la orientación horizontal deseada y NO para la orientación vertical.

+0

Gracias. Hice lo que usted describió. Tengo más de una subvista y descubrí que tenía que anular el método en todos los controladores antes de que funcionara. – bvd

+0

si en su info.plist coloca UIInterfaceOrientationLandscapeRight sobre los otros paisajes, puede iniciar su aplicación en el paisaje –

0

Creo que si trabaja en las orientaciones de la interfaz compatible en el proyecto, funcionará. solo agregue una nueva línea llamada "Orientaciones de interfaz compatibles" y haga que sea de tipo de matriz y agregue 2 elementos para cada una de las vistas de la costa que desee. havent probado esto sólo una conjetura rápida

+0

He tratado de que con sin suerte. – bvd

1

Al hacer clic en el nombre de su proyecto en XCode y seleccionar su objetivo en TARGETS, en la pestaña Resumen hay una representación visual de la configuración de orientación del dispositivo admitido. Así fue como logré hacerlo.

-2

Intenta esto, te ayudará, escribe este código en tu viewdidload.

[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight]; 
+0

UIDevice setOrientation es de solo lectura y no se puede configurar. –

+0

Una propiedad de solo lectura no tiene setter. – SyntheticMeshwork

10

utilice el siguiente en AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 

    [[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight]; 

también establecidas las orientaciones requeridas en

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

//Here are some iOS6 apis, used to handle orientations. 
- (BOOL)shouldAutorotate NS_AVAILABLE_IOS(6_0) 
- (NSUInteger)supportedInterfaceOrientations - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation 
+0

shouldAutorotateToInterfaceOrientation: no se llama ayuda mí su apreciada –

+0

@JigPatel utilizar algunos de estos nuevos métodos en iOS6 '- (BOOL) shouldAutorotate NS_AVAILABLE_IOS (6_0) - (NSUInteger) supportedInterfaceOrientations - (UIInterfaceOrientation) preferredInterfaceOrientationForPresentation' – vishy

Cuestiones relacionadas