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