Force landscape orientation in UIImagePickerController
Solution 1:
As per the UIImagePickerController Class Reference
Important: The
UIImagePickerController
class supports portrait mode only. This class is intended to be used as-is and does not support subclassing. The view hierarchy for this class is private and must not be modified, with one exception. You can assign a custom view to the cameraOverlayView property and use that view to present additional information or manage the interactions between the camera interface and your code.
So it looks like forcing landscape mode is unsupported and discouraged, unless you do so by replacing the default controls with a custom cameraOverlayView
.
Solution 2:
Create a class named "CUIImagePickerController" inherited from UIImagePickerController, override following methods, now use this class!
@interface CUIImagePickerController : UIImagePickerController
@end
@implementation CUIImagePickerController
- (BOOL)shouldAutorotate {
return NO;
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)orient {
return (orient == UIInterfaceOrientationLandscapeLeft) | (orient == UIInterfaceOrientationLandscapeRight);
}
@end
Regards,