UIImagePickerController in Storyboard: UIImagePickerControllerSourceTypePhotoLibrary displays black screen
Asked Answered
I

2

6

I have a storyboard where I created a UINavigationController instance and set its custom class to UIImagePickerController.

If I set imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera in prepareForSegue, everything works fine.

If I set imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary in prepareForSegue, I get a mostly black screen with an empty gray bar on top that I can't dismiss:

[future location of screenshot - I cannot post images]

I can work around this by not using the storyboard. The question I have-- can this be made to work with the storyboard? If not, why not? Why does it only work for presenting the camera?

EDIT: A colleague comments that this may be a new issue for ios7

The code below doesn't work if the segue is triggered by a storyboard

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    NSAssert([segue.destinationViewController isKindOfClass:[UIImagePickerController class]], @"Destination VC should be UIImagePickerController");

    UIImagePickerController *imagePicker = (UIImagePickerController*) segue.destinationViewController;

    imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
    imagePicker.allowsEditing = YES;
    imagePicker.delegate = self;

}
Iceskate answered 3/3, 2014 at 21:45 Comment(3)
I made the same observation using iOS 8Sesquicentennial
@Sesquicentennial -- try this?? I may close this as a duplicate if it works for you. I haven't gotten around to trying/resolving this for myself in the meantime.Iceskate
@Sesquicentennial -- I see it worked for you based on a comment there. Please vote to close this as a duplicate. Thanks!Iceskate
I
2

This question is a duplicate of iOS7 Storyboard image picker not working :(

The answer there:

Initialize the controller UIImagePickerController *controller = [[segue destinationViewController] init];

...appears to work for most people, so I've recommended this be closed as duplicate of that question which has been answered for awhile.

Iceskate answered 17/1, 2015 at 21:15 Comment(0)
F
0

Definitely strange. The only solution I have found so far is here: ios7-storyboard-image-picker-not-working

You have to manually init the UIImagePickerControllerInstance for same reason. I'm guessing that there is something funky with the 'initWithCodec' method of the UIImagePicker but it is hard to say without access to the source code (gee thanks Apple...).

P.S. Make sure you are also using the right type of segue. UIImagePickerController is picky about how each mode is displayed. 'Camera' can be modal or popover (modal is reccomended). PhotoLibrary MUST be displayed using a popover.

Faust answered 15/8, 2014 at 20:29 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.