UIImagePicker必须在iPhone和iPad上以不同的方式呈现。在iPad上,它抛出一个例外说:
* 由于未捕获的异常而终止应用 'NSInvalidArgumentException',原因: '在iPad上,UIImagePickerController必须 通过UIPopoverController'
呈现
所以我必须将代码添加到我特定于iPad的通用应用程序中。有什么安全的方法可以让应用程序在没有UIPopoverController的设备上崩溃?
示例:
popover = [[UIPopoverController alloc] initWithContentViewController:imagePicker];
[popover presentPopoverFromRect:CGRectMake(100, 100.0, 0.0, 0.0)
inView:self.view
permittedArrowDirections:UIPopoverArrowDirectionAny
animated:YES];
另外,如果我需要一个UIPopoverController,我需要一个保存它的实例变量。我该如何处理?
答案 0 :(得分:3)
您可以通过执行此操作来检查是否存在类。
Class popoverClass = (NSClassFromString(@"UIPopoverController"));
if (popoverClass != nil) {
// you're on ipad
} else {
// you're on iphone/ipod touch
}
答案 1 :(得分:2)
答案 2 :(得分:2)
您可以快速检查您使用的设备:
[[UIDevice currentDevice] model];