Popover没有显示iPad照片库

时间:2012-11-22 11:44:21

标签: ios ipad uiimagepickercontroller uipopovercontroller photolibrary

我正在尝试编写一个应用程序,允许用户从iPad上的照片库中选择图像。我完全按照在线消息来说它应该完成,但是当我点击按钮时,只有箭头显示在屏幕上而没有别的。应该与图像一起显示的弹出窗口不显示。谁能告诉我为什么会这样?这是我的代码:

        UIImagePickerController *picker = [[UIImagePickerController alloc] init];
        [picker setDelegate:self];

        [picker setSourceType:UIImagePickerControllerSourceTypePhotoLibrary];
        [picker setAllowsEditing:YES];

        popoverController = [[UIPopoverController alloc] initWithContentViewController:picker];
        [popoverController presentPopoverFromRect:self.view.frame inView:[self view] permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];

1 个答案:

答案 0 :(得分:0)

我知道应该迟到才能回答,但如果您已经对它感兴趣,这可能适合您:

在.h文件中,为此代表提供:

@interface ViewController : UIViewController <UIPopoverControllerDelegate, UINavigationControllerDelegate,  UIImagePickerControllerDelegate>

将popover创建为属性:

@property (nonatomic, strong) UIPopoverController *popoverController;

,最后在.m文件中:

-(IBAction)showPhotoLibray:(id)sender
{
    BOOL hasGellery = [UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary];
    UIImagePickerController* picker = [[UIImagePickerController alloc] init];
    picker.delegate = self;
    picker.sourceType = hasGellery ? UIImagePickerControllerSourceTypePhotoLibrary :    UIImagePickerControllerSourceTypePhotoLibrary;
    if (self.popoverController != nil)
    {
        [self.popoverController dismissPopoverAnimated:YES];
        self.popoverController=nil;
    }

    self.popoverController = [[UIPopoverController alloc] initWithContentViewController:picker];
    CGRect popoverRect = [self.view convertRect:[self.theViewObject frame]
                                       fromView:[self.theViewObject superview]];
    popoverRect.size.width = MIN(popoverRect.size.width, 300) ;
    popoverRect.origin.x = popoverRect.origin.x;
    [self.popoverController
     presentPopoverFromRect:popoverRect
     inView:self.view
     permittedArrowDirections:UIPopoverArrowDirectionAny
     animated:YES];
}

self.theViewObject是调用方法的对象视图控制器的出口,例如UIButton