iphone - 在 iPad 上选择图像

标签 iphone objective-c ios xcode ipad

我正在尝试编写代码以从 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/

相关文章:

objective-c - 尝试添加核心位置时出现未知问题

ios - 使用不同的尺寸类别, View 从 Storyboard场景中消失

iphone - 两部 iPhone 之间的距离

ios - 拍摄快照 - 仅 UIView 的一部分,而不是整个框架

iphone - 导航栏隐藏在内容后面

ios - 关闭 ImagePickerController 并无缝过渡到新的 ViewController

ios - 从 iOS app/cocoa 安装 .IPA 文件

iphone - iphone 上是否有任何开源 Web 服务器?

iphone - Coreplot 库 - 提取整个图形图像

ios - iOS 应用程序的理想内存使用量