HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了iphone – iPad中的异常,UIImagePickerController必须通过UIPopoverController显示大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经创建了一个从相机拍摄图像的应用程序.这是我的代码

-(IBAction) showCameraUI {
    BOOL hasCamera = [UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera];
    UIImagePickerController* picker = [[UIImagePickerController alloc] init];
    picker.delegate = self;
    picker.sourceType = hasCamera ? UIImagePickerControllerSourceTypeCamera :    UIImagePickerControllerSourceTypePhotoLibrary;
    [self presentModalViewController:picker animated:YES];
}

并实现了这个委托方法获取捕获的图像

- (void)imagePickerController:(UIImagePickerController *)picker
didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    [picker dismissModalViewControllerAnimated:YES];
    UIImage* image = [info objectForKey:UIImagePickerControllerOriginalImage];
    UIImage *yourImageView = image;
}

如果用户取消控制器,则执行此方法

- (void)imagePickerControllerDidCancel:(UIImagePickerController*)picker
{
    [picker dismissModalViewControllerAnimated:YES];
}

但它显示这个例外.有没有人知道为什么在执行函数showCameraUI的最后一行之后显示这样的异常.

UIStatusBarStyleBlackTranslucent is not available on this device. 2013-02-07 
10:06:06.976 CaptureImage[460:c07] *** Terminating app due to uncaught exception
'NSInvalidArgumentException',reason: 'On iPad,UIImagePickerController must be 
presented via UIPopoverController'

解决方法

关于例外,错误信息非常清楚. “在iPad上,UIImagePickerController必须通过UIPopoverController呈现”对于iPad,您应该将其呈现在UIPopoverController中,而不是使用[self presentModalViewController:picker animated:YES] ;.这应该解决这个问题.

例如:

if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {
    UIPopoverController *popover = [[UIPopoverController alloc] initWithContentViewController:picker];
    [popover presentPopoverFromRect:self.view.bounds inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
    self.popover = popover;
} else {
    [self presentModalViewController:picker animated:YES];
}

编辑:如@rmaddy所述,相机可以以模态显示.当sourceType为UIImagePickerControllerSourceTypePhotoLibrary时,上述适用.

大佬总结

以上是大佬教程为你收集整理的iphone – iPad中的异常,UIImagePickerController必须通过UIPopoverController显示全部内容,希望文章能够帮你解决iphone – iPad中的异常,UIImagePickerController必须通过UIPopoverController显示所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: