Ios UIImagePicker处于横向模式-如何旋转UIAlertView?

Ios UIImagePicker处于横向模式-如何旋转UIAlertView?,ios,xcode,Ios,Xcode,在iOS6中,当设备处于横向模式时,如何在UIImagePicker顶部旋转UIAlertView?他们只是在纵向加载,但应用程序只是横向加载。我必须手动旋转自定义cameraOverlayView(UIView),但我不知道如何处理警报?问题是UIImagePickerController仅支持纵向模式: 来自苹果文档 UIImagePickerController类仅支持纵向模式。此类旨在按原样使用,不支持子类化。此类的视图层次结构是私有的,不能修改,只有一个例外。可以将自定义视图指定给ca

在iOS6中,当设备处于横向模式时,如何在UIImagePicker顶部旋转UIAlertView?他们只是在纵向加载,但应用程序只是横向加载。我必须手动旋转自定义cameraOverlayView(UIView),但我不知道如何处理警报?

问题是UIImagePickerController仅支持纵向模式:

来自苹果文档 UIImagePickerController类仅支持纵向模式。此类旨在按原样使用,不支持子类化。此类的视图层次结构是私有的,不能修改,只有一个例外。可以将自定义视图指定给cameraOverlayView属性,并使用该视图显示其他信息或管理摄影机界面与代码之间的交互

因此,当选择器打开时,设备方向报告为纵向,UIAlertView以纵向模式显示。 当然,使用一些“黑客”你可以旋转UIAlertView,但该应用程序可能会在审查期间被拒绝


唯一“合法”的方法是创建自己的图像选择器

问题是UIImagePickerController仅支持纵向模式:

来自苹果文档 UIImagePickerController类仅支持纵向模式。此类旨在按原样使用,不支持子类化。此类的视图层次结构是私有的,不能修改,只有一个例外。可以将自定义视图指定给cameraOverlayView属性,并使用该视图显示其他信息或管理摄影机界面与代码之间的交互

因此,当选择器打开时,设备方向报告为纵向,UIAlertView以纵向模式显示。 当然,使用一些“黑客”你可以旋转UIAlertView,但该应用程序可能会在审查期间被拒绝


唯一“合法”的方法是创建您自己的图像选择器。为此,您需要对UIImagePicker类进行子类化

@interface yourImagePicker :UIImagePicker 
{
}
@end
您需要在实现中实现
shouldAutoRotate
方法,并仅返回横向模式

@implementation yourImagePicker 

- (BOOL)shouldAutorotate
{
    return [[UIDevice currentDevice] orientation] != UIInterfaceOrientationPortrait;
}
@end

您需要创建
yourImagePicker
实例,而不是
UIImagePicker
为此,您需要对
UIImagePicker
类进行子类化

@interface yourImagePicker :UIImagePicker 
{
}
@end
您需要在实现中实现
shouldAutoRotate
方法,并仅返回横向模式

@implementation yourImagePicker 

- (BOOL)shouldAutorotate
{
    return [[UIDevice currentDevice] orientation] != UIInterfaceOrientationPortrait;
}
@end

您需要创建
yourImagePicker
实例,而不是
UIImagePicker

这正是我在UIImagePicker上的问题-那会是什么问题?这个应用程序不会通过苹果商店。我搜索并尝试了一些东西,我纠正了自己:我在iOS 6上无法做到这一点,甚至使用了一些技巧(方法swizzle)强制方向始终为横向。我从苹果公司得到的消息称,如果没有大规模的工作,iOS 6上就不可能实现这一点。这正是我的UIImagePicker问题所在——那会是什么样的黑客行为?这个应用程序不会通过苹果商店。我搜索并尝试了一些东西,我纠正了自己:我在iOS 6上无法做到这一点,甚至使用了一些技巧(方法swizzle)强制方向始终为横向。我从苹果公司得到的消息称,如果我的viewcontroller.h文件中已经有了@interface语句,那么如何在iOS 6上创建另一个?另外,我的.m文件中已经有了一个实现。这里是初学者。您需要创建一个名为
yourImagePicker
的新文件,或者您可以轻松地在viewcontroller.m文件中编写上述代码(在
@implementation
语句之前编写)。好的,在这里,还有一个问题。我要在.h文件中放置两个“接口”语句吗?你可以在一个.h文件中放置两个接口,我建议将第二个接口放在.m文件中。我想我太初学了,无法理解这一点,我已经在其中实现了,但要放置接口,我一直使用“未声明的标识符”MyImagePIckerController如果我的viewcontroller的.h文件中已经有@interface语句,那么如何创建另一个?另外,我的.m文件中已经有了一个实现。这里是初学者。您需要创建一个名为
yourImagePicker
的新文件,或者您可以轻松地在viewcontroller.m文件中编写上述代码(在
@implementation
语句之前编写)。好的,在这里,还有一个问题。我要在.h文件中放置两个“接口”语句吗?你可以在一个.h文件中放置两个接口,我建议将第二个接口放在.m文件中。我想我太初学了,无法理解这一点,我已经在其中实现了,但要放置接口,我一直使用“未声明的标识符”MyImagePIckerController