2012-08-13 19 views
17

Mi programa actual solo soporta orientación horizontal.UIPopoverController accidente orientación en IOS 6

En iOS 6, que choque en UIPopoverController.

'UIApplicationInvalidInterfaceOrientation', razón: 'Con el apoyo orientaciones no tiene ninguna orientación común con la solicitud, y shouldAutorotate está volviendo SÍ'

puedo activar todas orientación para el proyecto, que está funcionando bien. Sin embargo, tengo que cambiar mucho para todas las vistas solo para admitir el paisaje.

¿Hay otra manera fácil de arreglar, UIOrientation en UIPopoverController?

+2

Hola @satungod, desafortunadamente mi respuesta fue eliminada por un moderador porque ya la había publicado en otro hilo ... bastante. Encuentre esta respuesta aquí: http://stackoverflow.com/a/12575058/662605 - Estoy agregando una nueva respuesta para dirigir a la otra. – Daniel

Respuesta

0

Trate de añadir lo siguiente a su UIApplicationDelegate:

- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window { 
    return UIInterfaceOrientationMaskAll; 
} 

podrá establecer sus orientaciones de interfaz soportado en su archivo Info.plist y devolviendo una máscara en el método de cada controlador de vista supportedInterfaceOrientations:.

+0

esto es correcto, según https://devforums.apple.com/message/731764#731764 – Zeophlite

0

Nueva una subclase de UIImagePickerController y añadir códigos:

@property (nonatomic)NSUInteger supportedInterfaceOrientations; 

-(NSUInteger)supportedInterfaceOrientations{ 
    return _supportedInterfaceOrientations; 
} 
-(BOOL)shouldAutorotate{ 
    return YES; 
} 

utilizar de esta manera:

if (imagePickerController==nil) { 
     imagePickerController = [[WUIImagePickerController alloc]init];//the subclass 
     imagePickerController.delegate = self; 
     imagePickerController.supportedInterfaceOrientations = UIInterfaceOrientationMaskLandscapeRight;//any orientation you want to set 
     if (popoverController==nil) { 
      popoverController = [[UIPopoverController alloc]initWithContentViewController:imagePickerController]; 
     } 
    } 

Quién sabe una mejor manera por favor dígame.

+1

Echa un vistazo a la respuesta de Daniel. Hay un enlace con una respuesta. –

+1

este no es un método setter imagePickerController.supportedInterfaceOrientations = UIInterfaceOrientationMaskLandscapeRight; totalmente equivocado ... –

0

Thy este link. Debes configurar tu aplicación para que sea compatible con todas las orientaciones al inicio. Haz el cambio en el delegado de la aplicación.

-(NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window 

{ 
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) 
     return UIInterfaceOrientationMaskAll; 
    else /* iphone */ 
     return UIInterfaceOrientationMaskAllButUpsideDown; 

} 
0
@interface NonRotatingUIImagePickerController : UIImagePickerController 

@end 

@implementation NonRotatingUIImagePickerController 

- (BOOL)shouldAutorotate 
{ 
    return NO; 
} 

@end 

UIImagePickerController *picker = [[NonRotatingUIImagePickerController alloc] init]; 

Añadido anteriormente, esto funcionó para mí.

0
Use these delegates for orientation, 
- (BOOL)shouldAutorotate 
{ 

return YES; 
} 

-(NSUInteger)supportedInterfaceOrientations 

{ 
return UIInterfaceOrientationMaskLandscape; 

} 

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation 
{ 
    return UIInterfaceOrientationLandscapeLeft; 
} 
Cuestiones relacionadas