3

我正在开发一个仅支持横向方向的应用程序。它使用 aUIImagePickerController从库中挑选图像和/或视频。应用程序在 iOS-5 或更早版本中运行良好,但当我尝试呈现图像选择器控制器时它会崩溃。崩溃后会显示以下消息:

*由于未捕获的异常“UIApplicationInvalidInterfaceOrientation”而终止应用程序,原因:“支持的方向与应用程序没有共同的方向,并且 shouldAutorotate 返回 YES”

4

2 回答 2

8

正如@rocky 所说,您必须将 Potrait 模式添加到您的应用程序才能使用UIImagePickerController像这样

Info.plist 中支持的接口方向 或将此添加到您的仅限横向应用程序委托类

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

Mr.Daniel 的回答中,我为您的 Landscape only App 找到了一个不错的解决方案,因为您只需要为您的应用程序支持 Landscape,您只需要为UINavigationController这样的添加一个类别

@implementation UINavigationController (LandscapeOnly)

- (NSUInteger) supportedInterfaceOrientations{
    return UIInterfaceOrientationMaskLandscape;
}
@end

并将其添加到您的视图控制器中,它对我有用。

于 2012-12-07T12:22:07.117 回答
2

来自 UIImagePickerController 文档:

重要提示: UIImagePickerController 类仅支持纵向模式。此类旨在按原样使用,不支持子类化。此类的视图层次结构是私有的,不得修改,但有一个例外。您可以将自定义视图分配给 cameraOverlayView 属性,并使用该视图来呈现附加信息或管理相机界面和代码之间的交互。

如果您想使用此控制器,您必须将纵向模式添加到您的支持界面方向。

于 2012-10-20T00:34:03.390 回答