这个问题已经在这里有一个答案:
- 崩溃在iOS下呈现的UIImagePickerController 6.0 5回答
我目前的方案只支持横向。
在iOS 6中,它会崩溃UIPopoverController
。
“UIApplicationInvalidInterfaceOrientation”,理由是:“支持的方向与应用程序中没有共同的方向,并shouldAutorotate将返回YES”
我使所有方向的项目,它的工作好。 不过,我需要改变很多关于所有的意见,唯一支持的风景线。
有没有其他简单的方法来解决, UIOrientation
在UIPopoverController
?
尝试添加以下到您的UIApplicationDelegate
:
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window {
return UIInterfaceOrientationMaskAll;
}
您还可以设置你支持的接口方向在你Info.plist
文件并返回在每个视图控制器的面具supportedInterfaceOrientations:
方法。
的UIImagePickerController的新的子类,并添加此代码:
@property (nonatomic)NSUInteger supportedInterfaceOrientations;
-(NSUInteger)supportedInterfaceOrientations{
return _supportedInterfaceOrientations;
}
-(BOOL)shouldAutorotate{
return YES;
}
使用这样的:
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];
}
}
谁知道更好的方法请告诉我。
@interface NonRotatingUIImagePickerController : UIImagePickerController
@end
@implementation NonRotatingUIImagePickerController
- (BOOL)shouldAutorotate
{
return NO;
}
@end
UIImagePickerController *picker = [[NonRotatingUIImagePickerController alloc] init];
使用上面的代码,这为我工作。
你的这个链接 。 你必须设置你的应用程序支持所有方向的开始。 不要在应用程序委托的变化。
-(NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
return UIInterfaceOrientationMaskAll;
else /* iphone */
return UIInterfaceOrientationMaskAllButUpsideDown;
}
Use these delegates for orientation,
- (BOOL)shouldAutorotate
{
return YES;
}
-(NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskLandscape;
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
return UIInterfaceOrientationLandscapeLeft;
}