我的应用程序每月都有一个视图,并且在每个月的每一天,在长按时,弹出窗口会显示。防止一次显示一个以上的UIPopover
我已经使用self.view setExclusiveTouch:YES
来防止同时发生多个popover,但仍偶尔会允许多个popover。
如何防止一次显示多个UIPopover?
感谢
我的应用程序每月都有一个视图,并且在每个月的每一天,在长按时,弹出窗口会显示。防止一次显示一个以上的UIPopover
我已经使用self.view setExclusiveTouch:YES
来防止同时发生多个popover,但仍偶尔会允许多个popover。
如何防止一次显示多个UIPopover?
感谢
首先声明一个UIPopoverController类型的属性(让我们说activePopover)。
在该方法被称为长按做到这一点:
if (self.activePopover != nil)
{
if (self.activePopover.popoverVisible)
[ self.activePopover dismissPopoverAnimated:YES];
self.activePopover = nil;
}
然后当你分配UIPopoverController长按它分配给activePopover。 这种方式,你总是忽视可见的popover,然后才提出一个新的。
您可以通过它的介绍后,其passthroughViews
属性设置为空数组禁用外酥料饼的任何互动。
谢谢。我认为这会奏效,但我犯了一些错误,并感到困惑。最后,这是不适合我的 –
全局布尔标志呢?
在全局类或在您的视图控制器创建为属性和与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
。
希望它有帮助
伟大的想法。我尝试过,但不知何故,我仍然得到一次显示多个popover! –
你在哪里/如何存储该标志?它似乎可能会失去它的价值,或者它不会正确设置为“真” – Marioea
我正在寻求解决方案。其他一些答案有很好的一点,但它似乎似乎iOS承认额外的触摸之前,我可以不允许第二次popover。我认为这是一个时间问题 –
谢谢。最后是最好的办法。我犯了一些愚蠢的错误,使我的轨迹 –