Reputation: 5510
I am trying to create a UIPopoverView that contains a UIImagePickerController for taking photos only. I have attempted to create something like this when I press a button on my toolbar. The method looks like this.
- (void) cameraButtonSelected
{
// create picker
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
picker.allowsEditing = YES;
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
// create popover
UIPopoverController *popOver = [[UIPopoverController alloc] initWithContentViewController:picker];
[popOver presentPopoverFromRect:CGRectMake(10, 30, 200, 350) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];
}
the issue being this procduces the following error
Terminating app due to uncaught exception 'NSGenericException', reason: '-[UIPopoverController dealloc] reached while popover is still visible.'
I am not sure exactly what this means so was hoping I could get some help on the matter.
Upvotes: 1
Views: 60
Reputation: 107131
Declare your UIPopover
as a property.
Like:
@property (nonatomic, strong) UIPopoverController *popOver;
Use it like:
self.popOver = [[UIPopoverController alloc] initWithContentViewController:picker];
[self.popOver presentPopoverFromRect:CGRectMake(10, 30, 200, 350) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];
Upvotes: 1
Reputation: 3271
UIPopoverController
should always be held in an instance variable.
Please refer this UIPopovercontroller dealloc reached while popover is still visible
Upvotes: 1
Reputation: 47069
Try to create UIPopoverController
as public, I mean declare it in .h file and then use it.
Such like
@property (nonatomic, strong) UIPopoverController * popOver;
And then use it in .m file, such like....
.
.
.
.
self.popOver = [[UIPopoverController alloc] initWithContentViewController:picker];
[self.popOver presentPopoverFromRect:CGRectMake(10, 30, 200, 350) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];
Upvotes: 1