Crash iPad Photo Picker Crash iPad Photo Picker xcode xcode

Crash iPad Photo Picker


If you set the picker to UIImagePickerControllerSourceTypePhotoLibrary on the iPad, then you must(!) present it in a popoverview, otherwise you get exceptions. I do it like this, to atleast control the size of the popover (the standard size is too small in my opinion):

-(void)openPhotoPicker{    imagePicker = [[UIImagePickerController alloc] init];    imagePicker.delegate = self;    imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;    imagePicker.navigationBar.opaque = true;    //put the image picker in its own container controller, to control its size    UIViewController *containerController = [[UIViewController alloc] init];    containerController.contentSizeForViewInPopover = rightPane.frame.size;    [containerController.view addSubview:imagePicker.view];    //then, put the container controller in the popover    popover = [[UIPopoverController alloc] initWithContentViewController:containerController];    //Actually, I would like to do the following, but iOS doesn't let me:    //[rightPane addSubview:imagePicker.view];    //So, put the popover over my rightPane. You might want to change the parameters to suit your needs.    [popover presentPopoverFromRect:CGRectMake(0.0, 0.0, 10.0,0.0)                      inView:rightPane    permittedArrowDirections:UIPopoverArrowDirectionLeft                   animated:YES];    //There seems to be some nasty bug because of the added layer (the container controller), so you need to call this now and each time the view rotates (see below)    [imagePicker.view setFrame:containerController.view.frame];}

I also have the following, to counter a rotation bug:

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {    if(imagePicker!=nil && rightPane.frame.size.width>0)        [imagePicker.view setFrame:imagePicker.view.superview.frame];}

It ain't perfect, but it is ok for my testing purposes at the moment. I consider writing my own Imagepicker, because I don't like being forced to use the popoverview... but well, that's a different story.


I suspect the UIImagePicker is inheriting the translucent status bar from your Info.plist file or from the currently displayed view controller.

What happens if you make the app not have a translucent status bar?