我正在使用此代码使用imagepicker打开弹出窗口

-(IBAction)photosAction:(id)sender
{
// dismiss any left over popovers here
UIImagePickerController* picker = [[UIImagePickerController alloc] init];
picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
picker.delegate = self;

UIPopoverController *popover = [[UIPopoverController alloc] initWithContentViewController:picker];
self.popoverController = popover;
popoverController.delegate = self;
[popoverController presentPopoverFromBarButtonItem:sender  permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];
[picker release];

但这会导致在结构或联合之类的东西中对成员'popoverController'的错误请求,并且未声明(此函数中的首次使用)此错误'popoverController'。

我也想在选择图像时关闭弹出窗口。

选择图像后,应在以下函数中添加什么代码以消除弹出窗口。
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {

谢谢您的帮助!

最佳答案

该错误表示未在 View Controller 中声明popoverController。您需要将其作为ivar和属性(不是内置的)添加到接口(interface)中:

@interface ... {
     ...
     UIPopoverController *popoverController;
}
@property (nonatomic, retain) UIPopoverController *popoverController;
@end

在实现中,添加@synthesize,在viewDidUnload中将其设置为nil,然后在dealloc中释放。

要关闭弹出窗口,您可以调用dismissPopoverAnimated:
[self.popoverController dismissPopoverAnimated:YES];

关于iPad UIImagePickerController和UIPopoverController错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2818919/

10-13 04:17