自定义键盘扩展中的iOS8 UIImagePickerController

3

我正在尝试在启用了完全访问权限的iOS8自定义键盘扩展中嵌入相机。除了覆盖层控件外,一切都按照我的期望工作,但嵌入式UIImagePickerController的视图始终是黑色的。出现“此应用程序想要访问您的相机”弹出窗口,并且确实已经授予权限(三次检查过)。

在XCode中,[UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]返回true, 除了相机本身,UIImagePickerController的界面正常显示(例如相机覆盖控件)。

XCode唯一的错误/警告如下:

对未呈现的视图进行快照会导致空快照。在快照之前或屏幕更新之后,请确保至少呈现过您的视图。

我尝试在相机初始化时添加超时,就像其他stackoverflow线程建议的那样,但是我所做的一切都没有解决这个警告或黑色相机屏幕问题。

- (void)viewDidAppear:(BOOL)animated
{
    [self performSelector:@selector(loadCamera) withObject:nil afterDelay:0.3];
}

- (void)loadCamera
{
self._picker = [[UIImagePickerController alloc] init];

self._picker.sourceType = UIImagePickerControllerSourceTypeCamera;
self._picker.cameraCaptureMode = UIImagePickerControllerCameraCaptureModePhoto;
self._picker.cameraDevice = UIImagePickerControllerCameraDeviceRear;
self._picker.allowsEditing = NO;
self._picker.showsCameraControls = YES;
self._picker.view.userInteractionEnabled = YES;

self._picker.delegate = self;

self._picker.view.frame = self.view.bounds;
[self.view addSubview:self._picker.view];
[self._picker didMoveToParentViewController:self];
}

我也尝试着将最后三行替换为以下内容,但结果相同:

[self presentViewController:self._picker animated:YES completion:^{    NSLog(@"completed");}];

有人知道在iOS8自定义键盘扩展中是否可以嵌入UIImagePickerController吗?如果可以,那么我可能做错了什么?

1个回答

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接