3

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

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

因此,如果您单击关闭它,则可以停止弹出窗口关闭。或者是否可以检测到允许调用我需要的函数。

谢谢

詹姆士

4

2 回答 2

6

假设您谈论的是当您在弹出框之外点击时弹出框的默认行为被解除,防止这种情况的解决方案是使弹出框模态。

为此,请将弹出框的内容视图控制器上的modalInPopover属性设置为。YES

顺便说一句-如果您想通过在弹出框外部点击来检测用户何时解除弹出框,则需要实现该UIPopoverControllerDelegate方法popoverControllerDidDismissPopover:

于 2013-07-13T17:28:37.567 回答
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。

于 2013-07-13T17:35:48.427 回答