3

当用户在弹出框外按下时,我需要通过通知或其他方式知道。

谢谢

4

1 回答 1

8

为什么不实现UIPopoverControllerDelegate协议?

假设您有一个MyController显示弹出框的控制器。在 MyController.h 中说它实现UIPopoverControllerDelegate如下;

@interface DocumentViewController : UIViewController <UIPopoverControllerDelegate>

现在,在 .m 某个地方,您可以显示弹出框并将其委托设置为self(这意味着MyController它将成为弹出框的委托)。

UIPopoverController* pop = // init the popover here
pop.delegate = self;

此时,您可以实现该协议中列出的方法(通常,您必须实现所需的方法)。在您的情况下,您可以实现以下内容:

- (BOOL)popoverControllerShouldDismissPopover:(UIPopoverController *)popoverController
{
    // here I'm closing the popover...
}

- (void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController
{    
    // here I closed the popover...
}

有关详细信息,请参阅UIPopoverControllerDelegate 类参考

希望有帮助。

于 2012-06-20T15:43:35.747 回答