Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/94.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS8对尚未渲染的视图进行快照会导致快照为空_Ios_Objective C_Camera_Xamarin_Snapshot - Fatal编程技术网

iOS8对尚未渲染的视图进行快照会导致快照为空

iOS8对尚未渲染的视图进行快照会导致快照为空,ios,objective-c,camera,xamarin,snapshot,Ios,Objective C,Camera,Xamarin,Snapshot,所以我知道这已经被回答了很多次了,但是我还没有找到一个适合我的解决方案 奇怪的是,我第一次从UIPickerController展示相机时,它工作正常,完全符合预期。但若我再次打开它,它只会显示一个带有摄像头控制的黑屏(“取消”按钮和白色拍照按钮) 如果您能帮助我消除这个错误,我将不胜感激,甚至可以确认这是一个bug,我只需要等待苹果公司修复它,这将是一个巨大的帮助 谢谢大家:) (顺便说一句,我在使用iOS 8.1的iPhone6Plus上运行) 编辑:代码(我使用的是Xamarin和c#)

所以我知道这已经被回答了很多次了,但是我还没有找到一个适合我的解决方案

奇怪的是,我第一次从UIPickerController展示相机时,它工作正常,完全符合预期。但若我再次打开它,它只会显示一个带有摄像头控制的黑屏(“取消”按钮和白色拍照按钮)

如果您能帮助我消除这个错误,我将不胜感激,甚至可以确认这是一个bug,我只需要等待苹果公司修复它,这将是一个巨大的帮助

谢谢大家:)

(顺便说一句,我在使用iOS 8.1的iPhone6Plus上运行)

编辑:代码(我使用的是Xamarin和c#)

这就是我调用这个方法时遇到的错误

Snapshotting a view that has not been rendered results in an empty snapshot. Ensure your view has been rendered at least once before snapshotting or snapshot after screen updates.

这个错误我也犯了一段时间了。我已经联系了Xamarin支持部门,他们告诉我这是iOS 8及更高版本的错误。除了等待iOS开发或Xamarin本身出现一些错误修复之外,没有解决方案。解决方法可能是将build SDK设置为早期版本,然后清理并重新构建应用程序。

这绝对是一个bug,你也可以在苹果开发者论坛上找到

我已经尝试使用许多关于堆栈溢出的其他答案来避免这个错误,但无法解决这个问题。然而,使用此方法,我可能无法获得此错误,我不会将其称为修复,而是尝试一下,让我知道它是否已修复此问题。
使用主队列中的Grand Central Dispatch async关闭视图控制器为我解决了这个问题

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {

// Code to handle the image data 

dispatch_async(dispatch_get_main_queue(), ^{
    [self dismissViewControllerAnimated:YES completion:nil];
});
}
-(void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {
dispatch_async(dispatch_get_main_queue(), ^{
[self dismissViewControllerAnimated:YES completion:nil];

});

}

请给我们看一些代码?上面用我正在使用的代码编辑过。是的,这就是我想出来的。幸运的是,我没有像以前那样频繁地看到这个错误,所以它可能已经被修复了。谢谢你的帮助!
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {

// Code to handle the image data 

dispatch_async(dispatch_get_main_queue(), ^{
    [self dismissViewControllerAnimated:YES completion:nil];
});
}
-(void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {
dispatch_async(dispatch_get_main_queue(), ^{
[self dismissViewControllerAnimated:YES completion:nil];

});

}