简体   繁体   中英

UIImagePickerController with UIPopOverController, iPad ios 6

I am trying access the Photo Library from an iPad application. It is said that "On iPad, UIImagePickerController must be presented via UIPopoverController". That's exactly the log message that I get too.

Here is a snapshot of my app:

https://www.evernote.com/shard/s241/sh/b0283978-b50b-425f-8e8f-b9a5a171c463/de48b8b2dfe7716fe304e85a18ecacfc

Since I am already listing the options via a popover, it doesn't make sense to go another popover from within. The accessPhotoLibrary method gets called when the user taps on the "Photo Library" cell.

-(void)accessPhotoLibrary{
    NSLog(@"Photo library access requested!");
    if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]){
        NSLog(@"Photo Library");
        [imagePickerController setSourceType:UIImagePickerControllerSourceTypePhotoLibrary];
        [imagePickerController setDelegate:self];
        [imagePickerController setModalPresentationStyle:UIModalPresentationFullScreen];
        [self presentViewController:imagePickerController animated:YES completion:nil];
    }
    else{
        UIAlertView *alert = [[UIAlertView alloc]
                              initWithTitle: @"Photo Library"
                              message: @"Sorry, couldn't open your photos library"
                              delegate: nil
                              cancelButtonTitle:@"OK"
                              otherButtonTitles:nil];
        [alert show];
    }
}

But how do I get around this problem of having to access the photo library using a popover when I am using one already??

Any help is much appreciated.

You can present the image picker within the same popover. Hold a reference to the popover (the parent view controller presenting the popover can pass a reference) and then you can do the following:

[_parentPopover setContentViewController:imagePickerController animated:YES];

If needed, you can change the size of the content presented in the popover using the property "contentSizeForViewInPopover" in the image picker view controller.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM