0

我的应用程序具有月度视图,并且对于该月中的每一天,长按都会显示一个弹出窗口。

我曾经self.view setExclusiveTouch:YES防止一次发生多个弹出窗口,但偶尔仍然允许多个弹出窗口。

如何防止一次显示多个 UIPopover?

谢谢

4

3 回答 3

3

首先声明一个 UIPopoverController 类型的属性(比如说 activePopover)。

在长按调用的方法中执行以下操作:

if (self.activePopover != nil)
{
    if (self.activePopover.popoverVisible)
        [ self.activePopover dismissPopoverAnimated:YES];
    self.activePopover = nil;
}

然后,当您在长按上分配 UIPopoverController 时,将其分配给 activePopover。这样,您总是会关闭可见的弹出框,然后才会呈现一个新的弹出框。

于 2013-05-21T15:03:03.520 回答
0

passthroughViews您可以通过在其呈现后将其属性设置为空数组来禁用弹出框之外的任何交互。

于 2013-05-21T14:58:29.503 回答
0

全局布尔标志呢?

在全局类或视图控制器中将其创建为属性,并在打开任何弹出窗口之前对其进行检查

用值初始化它,FALSE当你要打开一个弹出窗口时,只需检查它的值:

//In the method that handle the long press to open the popup
if(!self.popUpPresent)
{
    //open the pop up
    [self openNewPopUp];
    //put the flag
    self.popUpPresent = TRUE;
}
else
//There is a popup opened, do another stuff or nothing.

FALSE不要忘记在每次关闭弹出窗口时重新设置它的值。

希望能帮助到你

于 2013-05-21T15:08:46.673 回答