我正在尝试检测何时UIPopoverController被解除,但似乎无法正常工作,方法不会被调用。这是我展示UIPopoverController的代码:
UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];
imagePickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
imagePickerController.delegate = self;
UIPopoverController *popoverVC = [[UIPopoverController alloc] initWithContentViewController:imagePickerController];
popoverVC.delegate = self;
[popoverVC presentPopoverFromRect:CGRectMake(self.frame.origin.x,self.frame.origin.y, self.frame.size.width, self.frame.size.height) inView:[home view] permittedArrowDirections:0 animated:YES];
我正试图解雇这个方法,但是没有被调用:
- (void) popoverControllerDidDismissPopover:(UIPopoverController *) popoverController;
我确实将代表添加到标题中:
@interface Map : UIView <UIImagePickerControllerDelegate, UINavigationControllerDelegate, UIGestureRecognizerDelegate, UIScrollViewDelegate,UIPopoverControllerDelegate>
我不知道我错过了什么,根本不工作。
答案 0 :(得分:0)
你可能已经解决了,但我遇到了同样的问题。我在我的Viewcontroller中持有UIPopoverController的一个实例,并采用了这种方式:
self.popover.delegate = self;
self.popover = [[UIPopoverController alloc] initWithContentViewController:wgtvc];
当然这不起作用,因为我正在初始化UIPopoverController AFTER设置委托,它会覆盖委托设置。所以正确的方法是FIRST初始化UIPopovercontroller,然后设置委托
self.popover = [[UIPopoverController alloc] initWithContentViewController:wgtvc];
self.popover.delegate = self;
也许你正在重新初始化你的UIPopoverController - 只需在重新初始化后重新设置委托。
Hpoe这有帮助。
答案 1 :(得分:0)
所以,我想出了如何让它发挥作用。
我为班级制作了一个“全局”变量。
self.popoverVC = [[UIPopoverController alloc] initWithContentViewController:imagePickerController];
self.popoverVC.delegate = self;
因为它是UIPopoverController中的UIImagePickerController,所以我需要听取UIImagePickerController的分离并结合两种方法:
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker;
- (void) popoverControllerDidDismissPopover:(UIPopoverController *) popoverController
所以我现在可以检测UIPopoverController何时被解雇。