弹出框消失时我可以发出通知吗(iPad)

Posted

技术标签:

【中文标题】弹出框消失时我可以发出通知吗(iPad)【英文标题】:can I fire a notification when popover had disappeared (iPad) 【发布时间】:2012-06-20 15:33:35 【问题描述】:

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

谢谢

【问题讨论】:

查看文档中的 popoverControllerShouldDismissPopover:。它可能适合您的需求。 developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/… 【参考方案1】:

为什么不实现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 class reference。

希望对您有所帮助。

【讨论】:

显然在第一种情况下,需要返回一个BOOL值!!

以上是关于弹出框消失时我可以发出通知吗(iPad)的主要内容,如果未能解决你的问题,请参考以下文章

取决于弹出框的核心动画 - iPad

带有 VoiceOver 的持久弹出框

iPad/iPhone 的自定义弹出框

使用动画在 iPad 上呈现和隐藏​​弹出框

iPad SplitViewController 以编程方式显示弹出框

使用layer插件为啥弹出框没点确定就自动消失了