UIPopoverController & UIImagePickerControl: "Popovers cannot be presented from a view which does not have a window"

ios, ipad, uiimagepickercontroller, uipopovercontroller

Solution

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)?

Problem

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?

Original source