我正在尝试编写代码以从 iPad 上的照片库中选择图像。我正在使用的代码如下(取自 Apple 的网站),但它一直给我一个错误,提示 On iPad, UIImagePickerController must be present via UIPopoverController
。我试过更改此行:UIImagePickerController *mediaUI = [[UIImagePickerController alloc] init];
以使用 UIPopoverController,但显然我做错了什么,因为它不起作用。
- (BOOL) selectImage: (UIViewController*) controller
usingDelegate: (id <UIImagePickerControllerDelegate,
UINavigationControllerDelegate>) delegate {
if (([UIImagePickerController isSourceTypeAvailable:
UIImagePickerControllerSourceTypeSavedPhotosAlbum] == NO)
|| (delegate == nil)
|| (controller == nil))
return NO;
UIImagePickerController *mediaUI = [[UIImagePickerController alloc] init];
mediaUI.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
// Displays saved pictures and movies, if both are available, from the
// Camera Roll album.
mediaUI.mediaTypes =
[UIImagePickerController availableMediaTypesForSourceType:
UIImagePickerControllerSourceTypeSavedPhotosAlbum];
// Hides the controls for moving & scaling pictures, or for
// trimming movies. To instead show the controls, use YES.
mediaUI.allowsEditing = NO;
mediaUI.delegate = delegate;
[controller presentModalViewController: mediaUI animated: YES];
return YES; }
Apple 开发者页面还说:“在 iPad 上,您可以选择使用弹出窗口显示浏览器界面,如 initWithContentViewController 中所述:和 UIPopoverController 类引用中的“显示和关闭弹出窗口”。”我读过它,但我仍然无法让它工作。任何帮助将不胜感激。
最佳答案
像这样的东西应该可以工作:
// create an image picker controller
UIImagePickerController *imagePickerController = [[[UIImagePickerController alloc] init] autorelease];
imagePickerController.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
imagePickerController.delegate = self;
// present it in a popover
self.popoverController = [[[UIPopoverController alloc] initWithContentViewController:imagePickerController] autorelease];
self.popoverController.delegate = self;
// I was presenting the popover from a button, but you would set the rect to whatever is appropriate for your app
[self.popoverController presentPopoverFromRect:((UIButton *)sender).bounds inView:sender permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
关于iphone - 在 iPad 上选择图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10626411/