在的UIImagePickerController iOS 6中不能正常工作(UIImagePick

2019-10-17 14:46发布

我有一个很奇怪的现象:

  1. 在iOS 5中我介绍UIImagePickerController这样:

imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera; imagePicker.modalPresentationStyle = UIModalPresentationFullScreen; imagePicker.modalTransitionStyle = UIModalTransitionStyleCoverVertical;

[self presentModalViewController:imagePicker animated:YES];

现在在iOS 6的这个产生崩溃。 我写一个类解决了崩溃UIImagePickerController

@implementation UIImagePickerController (NonRotating)

- (BOOL)shouldAutorotate
{
    return NO;
}

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
    return UIInterfaceOrientationMaskPortrait;
}

- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskAll;
}

@end

问题是,现在UIImagePickerController不旋转,它的显示上侧。 此外,当我按下“取消”按钮,选择器被驳回,应用程序崩溃一次。

  1. 如果我使用UIImagePickerController一个内部UIPopoverController ,一切工作正常(属于事实酥料饼不旋转),但是当我驳回酥料饼在我的应用视图控制器停止响应旋转事件和这个原因,所有的应用程序被阻止在这个方向。 要还原正确的行为,我需要退出从后台应用程序,然后再次打开。

这是我使用的显示酥料饼的代码

_cameraPopoverController = [[UIPopoverController alloc] initWithContentViewController:imagePicker];
[_cameraPopoverController presentPopoverFromRect:_takeFromCamera.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];

这个问题让我疯狂!

Answer 1:

什么是你的选择器源类型? 照片库/相册或相机胶卷?

假设您正在使用图片库/相册源,在iPad上,你必须使用一个酥料饼:

http://developer.apple.com/library/ios/#documentation/uikit/reference/UIImagePickerController_Class/UIImagePickerController/UIImagePickerController.html (看在概述,点4)

全屏呈现不支持它。

关于其他问题(驳回酥料饼后,其他VC的停止转动),检查是否有很强的借鉴意义,以你的酥料饼(强属性)。 您正在使用呈现酥料饼的代码粘贴。



Answer 2:

虽然我不建议使用类别覆盖影像选择器的默认行为,所以存在引起提到崩溃的实现中的错误:

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
    return UIInterfaceOrientationMaskPortrait;
                                 ~~~~
}

返回值不应该是一个方向面膜,它应该是一个方向,如UIInterfaceOrientationPortrait。



文章来源: UIImagePickerController in iOS 6 doesn't work properly