[英]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.