Ipad UIPopoverController&;UIImagePickerControl:“图像选择器控制”;无法从没有窗口的视图中显示弹出窗口”;
我正试图在我的iPad应用程序中显示UIImagePickerControl。起初,调试器告诉我,在iPad上进行调试时,我需要将其放在popover中。因此,我编写了以下代码: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
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控制器。做得好。