Orientación del paisaje de fuerza en UIImagePickerController

Soy nuevo en el desarrollo de iOS y estoy desarrollando mi primera aplicación. (lo siento si estoy haciendo una pregunta de novato)

Mi aplicación tiene orientación vertical, excepto en el lugar donde estoy usando UIImagePickerController para tomar una foto para usar en la aplicación, lo que hago es:

UIImagePickerController *picker = [[UIImagePickerController alloc] init]; picker.delegate = self; picker.sourceType = UIImagePickerControllerSourceTypeCamera; picker.mediaTypes = [NSArray arrayWithObject:(NSString *)kUTTypeImage]; picker.allowsEditing = NO; [self presentModalViewController:picker animated:YES]; 

Como mi aplicación está en Portrait , necesito hacer algo para que UIImagePickerController esté solo en el paisaje . si trato de usar:

 [[UIDevice currentDevice] setOrientation:UIInterfaceOrientationLandscapeRight]; 

Parece que no puedo usar, porque mi Xcode se identifica como un error en esta línea (probablemente debido a la versión de Xcode, no estoy seguro). Y no estoy seguro, pero parece que si estoy desarrollando iOS 5.1 necesitaré implementar algo para iOS 6.0 también , ¿es correcto?

¿Alguien puede ayudarme a entender qué se necesita para hacer este UIImagePickerController , y solo este controlador de vista en la aplicación, funciona en orientación horizontal y funciona en iOS 5.1 y 6?

Saludos

Según la referencia de la clase UIImagePickerController

Importante : la clase UIImagePickerController solo admite el modo retrato. Esta clase está destinada a ser utilizada tal como está y no admite subclases. La jerarquía de vista para esta clase es privada y no debe modificarse, con una excepción. Puede asignar una vista personalizada a la propiedad cameraOverlayView y usar esa vista para presentar información adicional o administrar las interacciones entre la interfaz de la cámara y su código.

Por lo tanto, parece que forzar el modo horizontal no está soportado ni desaconsejado, a menos que lo haga al reemplazar los controles predeterminados por una cameraOverlayView personalizada cameraOverlayView .

Cree una clase llamada “CUIImagePickerController” heredada de UIImagePickerController, anule los siguientes métodos, ¡ahora use esta clase!

 @interface CUIImagePickerController : UIImagePickerController @end @implementation CUIImagePickerController - (BOOL)shouldAutorotate { return NO; } - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)orient { return (orient == UIInterfaceOrientationLandscapeLeft) | (orient == UIInterfaceOrientationLandscapeRight); } @end 

Saludos,

intente implementar los siguientes métodos:

 - (BOOL)shouldAutorotate { return YES; } -(NSUInteger)supportedInterfaceOrientations { return UIInterfaceOrientationMaskLandscape; } - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation { return UIInterfaceOrientationLandscapeRight; }