繁体   English   中英

防止一次显示多个UIPopover

[英]Prevent more than one UIPopover from being displayed at a time

我的应用程序具有每月视图,长按该按钮可显示该月的每一天。

我使用了self.view setExclusiveTouch:YES来防止一次出现多个弹出窗口,但是偶尔仍然允许多个弹出窗口。

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

谢谢

首先,声明一个UIPopoverController类型的属性(让我们说activePopover)。

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

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

然后,当您长时间分配UIPopoverController时,将其分配给activePopover。 这样,您始终会忽略可见的弹出框,然后再显示一个新的弹出框。

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

全局布尔标志呢?

在全局类或您的ViewController中将其创建为属性,并在打开任何弹出窗口之前进行检查

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

希望能帮助到你

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM