如何仅在代码中打开 ipad 上的图像选择器
Posted
技术标签:
【中文标题】如何仅在代码中打开 ipad 上的图像选择器【英文标题】:how to open an image picker on ipad just in code 【发布时间】:2013-01-22 21:25:16 【问题描述】:如何在代码中创建图像选择器?
我在 ipad 上使用 ios 6.0 和 ARC。
我希望能够选择图片并以某种方式获取所选图片的 UIImage。
我确实添加了代表: 在这里输入代码
在 viewDidLoad 方法中做了
enter code here
imagePicker = [[UIImagePickerController alloc] init];
在按钮方法中我已经放了
imagePicker.delegate = self;
imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
[self presentModalViewController:imagePicker animated:YES];
崩溃发生在
[self presentModalViewController:imagePicker animated:YES];
【问题讨论】:
我已经更新了这个问题来解释更多。 如果您从图库中选择照片,则无法在 iPad 上以模态方式呈现此内容。您需要在 UIPopoverController 中显示选择器。 实际上,您的代码对我有用。您的问题可能出在其他地方。 @user1157605 你在 iPhone 上测试过,不是吗。 @0x7fffffff 啊,是的,直到现在才看到。 【参考方案1】:这里有一些教程 http://www.raywenderlich.com/130/how-to-write-a-custom-image-picker-like-uiimagepicker 和 http://mobileorchard.com/ios-advanced-programming-the-image-picker/ 可能会对您有所帮助
【讨论】:
【参考方案2】:我的一个项目中有类似的代码,但我有
[self presentViewController:imagePicker animated:YES completion:nil];
而不是
[self presentModalViewController:imagePicker animated:YES];
试试看它是否有效。注意 presentViewController 而不是 presentModalViewController。
【讨论】:
更改为 [self presentViewController:imagePicker animated:YES completion:nil];没有帮助它像以前一样崩溃。 是的,这是因为我的代码是针对 iphone 的,而您使用的是 ipad。对于 ipad 不确定。【参考方案3】:在.h
中添加属性
@property (strong) UIPopoverController *pop;
在您的按钮实现下的.m
文件中添加如下内容:
if (self.pop)
[self.pop dismissPopoverAnimated:YES];
UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];
imagePickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
imagePickerController.delegate = self;
imagePickerController.allowsEditing = YES; //if you want to edit the image
self.pop=[[UIPopoverController alloc] initWithContentViewController:imagePickerController];
//choose the direction of the arrow for the popover
[self.pop presentPopoverFromRect:((UIButton *)sender).bounds inView:sender permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
确保您在 .h 中设置了 <UIPopoverControllerDelegate>
委托
【讨论】:
我在 .h @interface RayTracerViewController 中有: UIViewController以上是关于如何仅在代码中打开 ipad 上的图像选择器的主要内容,如果未能解决你的问题,请参考以下文章