我正在开发一个仅支持横向方向的应用程序。它使用 aUIImagePickerController
从库中挑选图像和/或视频。应用程序在 iOS-5 或更早版本中运行良好,但当我尝试呈现图像选择器控制器时它会崩溃。崩溃后会显示以下消息:
*由于未捕获的异常“UIApplicationInvalidInterfaceOrientation”而终止应用程序,原因:“支持的方向与应用程序没有共同的方向,并且 shouldAutorotate 返回 YES”
我正在开发一个仅支持横向方向的应用程序。它使用 aUIImagePickerController
从库中挑选图像和/或视频。应用程序在 iOS-5 或更早版本中运行良好,但当我尝试呈现图像选择器控制器时它会崩溃。崩溃后会显示以下消息:
*由于未捕获的异常“UIApplicationInvalidInterfaceOrientation”而终止应用程序,原因:“支持的方向与应用程序没有共同的方向,并且 shouldAutorotate 返回 YES”
正如@rocky 所说,您必须将 Potrait 模式添加到您的应用程序才能使用UIImagePickerController
像这样
或将此添加到您的仅限横向应用程序委托类
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window{
return UIInterfaceOrientationMaskAll;
}
从Mr.Daniel 的回答中,我为您的 Landscape only App 找到了一个不错的解决方案,因为您只需要为您的应用程序支持 Landscape,您只需要为UINavigationController
这样的添加一个类别
@implementation UINavigationController (LandscapeOnly)
- (NSUInteger) supportedInterfaceOrientations{
return UIInterfaceOrientationMaskLandscape;
}
@end
并将其添加到您的视图控制器中,它对我有用。
来自 UIImagePickerController 文档:
重要提示: UIImagePickerController 类仅支持纵向模式。此类旨在按原样使用,不支持子类化。此类的视图层次结构是私有的,不得修改,但有一个例外。您可以将自定义视图分配给 cameraOverlayView 属性,并使用该视图来呈现附加信息或管理相机界面和代码之间的交互。
如果您想使用此控制器,您必须将纵向模式添加到您的支持界面方向。