Ipad 从popover调用委托方法

Ipad 从popover调用委托方法,ipad,ios5,popover,Ipad,Ios5,Popover,我用ios5、xcode4和iPad做了一个项目 我的主视图中的一个标准按钮触发了一个弹出框。我在故事板上用一个固定在标准按钮上的序列设置了popover UIPopoverControllerDelegate是我的主视图控制器 @interface ViewController : UIViewController <UIPopoverControllerDelegate> 没有最后一行,所有工作正常,包括行选择和取消 但我对最后一行代码感到困惑 [popoverCo

我用ios5、xcode4和iPad做了一个项目

我的主视图中的一个标准按钮触发了一个弹出框。我在故事板上用一个固定在标准按钮上的序列设置了popover

UIPopoverControllerDelegate是我的主视图控制器

 @interface ViewController : UIViewController <UIPopoverControllerDelegate>
没有最后一行,所有工作正常,包括行选择和取消

但我对最后一行代码感到困惑

     [popoverController.delegate popoverControllerDidDismissPopover];
如果这一行没有注释,我会得到一个编译器错误:“没有选择器PopOvercontrollerdDismissPopOver的已知实例方法”。使用以下代码在主视图控制器中设置popover委托:

- (void) prepareForSegue:(UIStoryboardPopoverSegue *) segue sender:(id) sender {
     if ([[segue destinationViewController] isKindOfClass:[RGBViewController class]]) {
        RGBViewController* viewController = (RGBViewController*)[segue destinationViewController];
        UIStoryboardPopoverSegue* popoverSegue  = (UIStoryboardPopoverSegue*)segue;
        [viewController setPopoverController:[popoverSegue popoverController]];
        [[popoverSegue popoverController] setDelegate:self];
     }
 }
有什么帮助吗


谢谢。

您缺少该属性。您要查找的线路是:

[popoverController.delegate popoverControllerDidDismissPopover:popoverController];

你有什么特别的理由叫这个吗?我相信,当您关闭popover时,应该为您调用此函数。

否,当我以编程方式关闭popover时,不会调用PopoOvercontrollerdDismissPopover。只有当用户选择另一个元素时关闭popover时,才会调用它。我必须调用popoverControllerDidDismissPopover,因为它包含由popover触发的操作。好的,那么这应该就是您要查找的。我有一个相关的问题。如果我有两个popover,我如何区分?(void)popoverControllerDidDismissPopover:(UIPopoverController*)popoverController{If(popover1)[self action1];If(popover2)[self action2];}do If(popoverController==popover1){[self action1];}else If(popoverController==popover2)。。。
[popoverController.delegate popoverControllerDidDismissPopover:popoverController];