Ipad UIImagePickerController and UIPopoverControll

2019-06-22 19:43发布

I am using this code to open a popover with 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];

But this results in this error request for member 'popoverController' in something not a structure or union and this error 'popoverController' undeclared (first use in this function).

Also I want to dismiss the popover when the image is selected.

What code should I put in the following function to dismiss the popover once the image is selected.

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {

Thanks for the help!

3条回答
做自己的国王
2楼-- · 2019-06-22 20:34

The error means popoverController hasn't been declared in the view controller. You need to add it to the interface as an ivar and property (it's not built-in):

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

In the implementation, add the @synthesize, set it to nil in viewDidUnload, and release in dealloc.

To dismiss the popover, you would call dismissPopoverAnimated:.

[self.popoverController dismissPopoverAnimated:YES];
查看更多
该账号已被封号
3楼-- · 2019-06-22 20:34

try using this 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];
查看更多
地球回转人心会变
4楼-- · 2019-06-22 20:41

This error was caused becaused my function requires a bar button item and i was using a normal ui button.

查看更多
登录 后发表回答