如何检测一个popover dismiss

时间:2013-07-13 17:22:34

标签: ios ipad uipopovercontroller

当弹出窗口打开时,如果单击它,它将关闭。有可能阻止这个吗?基本上我有以下问题。

当弹出窗口关闭时,我需要一个要处理的功能。如果我从弹出窗口设置一个具有解除功能的按钮,那么我可以将该功能放入dismiss方法中,但是如果用户点击屏幕则不会检测到该功能。

如果单击它就可以停止弹出窗口关闭。 要么 是否可以检测到这一点,从而允许调用我需要的函数。

由于

詹姆斯

2 个答案:

答案 0 :(得分:6)

假设您正在谈论当您在弹出窗口外点击时弹出窗口的默认行为,防止这种情况的解决方案是制作弹出模式。

为此,请在popover的内容视图控制器上将modalInPopover属性设置为YES

BTW - 如果您想通过点击外部来检测用户是否解除了弹出窗口,则需要实施UIPopoverControllerDelegate方法popoverControllerDidDismissPopover:

答案 1 :(得分:6)

您可以使用这两种方法,但第二种方法适合您的方案:

 /* Called on the delegate when the popover controller will dismiss the popover. Return NO to prevent the dismissal of the view.
 */
- (BOOL)popoverControllerShouldDismissPopover:(UIPopoverController *)popoverController;

/* Called on the delegate when the user has taken action to dismiss the popover. This is not called when -dismissPopoverAnimated: is called directly.
 */
- (void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController;

请记住实现UIPopoverdelegate并将Delegate设置为self。