I am trying to display a UIImagePickerControl in my iPad app. At first, the debugger told me that I needed to put it in a popover when doing it on an iPad. So I wrote the following code:
UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
imagePicker.delegate = self;
imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
popover = [[UIPopoverController alloc] initWithContentViewController:imagePicker];
[popover presentPopoverFromRect:CGRectMake(0.0, 0.0, 400.0, 400.0)
inView:self.view
permittedArrowDirections:UIPopoverArrowDirectionAny
animated:YES];
However, now I get the following error: Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Popovers cannot be presented from a view which does not have a window.'
Any suggestions on what I should do? I know that self.view should have a window, but apparently... it doesn't?
This can happen if that bit of code is getting executed before the view is loaded, as self.view
is still nil and therefore so is self.view.window
.
Is it possible that you're doing this in an init method or some other place before the view is loaded (before -viewDidLoad:
is called)?
This error had me baffled but it turned out that it was because the barButtonItem
I was passing in to presentPopoverFromBarButtonItem
was a UIBarButtonSystemItemFlexibleSpace
item ant an actual button. My user error but just so people know this can als
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With