Ipad UIPopoverController&;UIImagePickerControl:“图像选择器控制”;无法从没有窗口的视图中显示弹出窗口”;

Ipad UIPopoverController&;UIImagePickerControl:“图像选择器控制”;无法从没有窗口的视图中显示弹出窗口”;,ipad,ios,uiimagepickercontroller,uipopovercontroller,Ipad,Ios,Uiimagepickercontroller,Uipopovercontroller,我正试图在我的iPad应用程序中显示UIImagePickerControl。起初,调试器告诉我,在iPad上进行调试时,我需要将其放在popover中。因此,我编写了以下代码: UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init]; imagePicker.delegate = self; imagePicker.sourceType = UIImagePickerControllerSour

我正试图在我的iPad应用程序中显示UIImagePickerControl。起初,调试器告诉我,在iPad上进行调试时,我需要将其放在popover中。因此,我编写了以下代码:

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];
但是,现在我遇到了以下错误:
由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因是:“无法从没有窗口的视图中显示弹出窗口”。


对我应该做什么有什么建议吗?我知道self.view应该有一个窗口,但显然。。。不会吗?

如果在加载视图之前执行该代码位,则可能会发生这种情况,因为
self.view
仍然为零,因此
self.view.window
也是如此


在加载视图之前(调用
-viewDidLoad:
之前),是否可能在init方法或其他位置执行此操作?

这个错误让我困惑不解,但事实证明,这是因为我从barButtonItem传递到
PresentPooverFromBarbuttonItem
BarbuttonSystemFlexibleSpace
项是一个实际的按钮。我的用户错误,但只是为了让人们知道这可能是一个很好的调用--我将函数调用移动到了
-viewdide:
,现在它可以正常工作了!这也可能是我发现的最快的一段代码,可以快速实现popover控制器。做得好。