我的应用程序具有每月视图,并且对于该月中的每一天,长按,将显示弹出窗口。
我已经使用self.view setExclusiveTouch:YES
来防止一次发生多个popover但仍然偶尔允许多个popovers。
如何防止一次显示多个UIPopover?
由于
答案 0 :(得分:3)
首先声明UIPopoverController类型的属性(比如activePopover)。
在长按调用的方法中执行以下操作:
if (self.activePopover != nil)
{
if (self.activePopover.popoverVisible)
[ self.activePopover dismissPopoverAnimated:YES];
self.activePopover = nil;
}
然后在长按分配UIPopoverController时将其分配给activePopover。 这样你总是会忽略一个可见的弹出框,然后才会出现一个新的弹出框。
答案 1 :(得分:0)
您可以通过在显示后将passthroughViews
属性设置为空数组来禁用popover外的任何交互。
答案 2 :(得分:0)
全局布尔标志怎么样?
在全局类或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
。
希望有所帮助