我的應用程序每月都有一個視圖,並且在每個月的每一天,在長按時,彈出窗口會顯示。防止一次顯示一個以上的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。我認爲這是一個時間問題 –
謝謝。最後是最好的辦法。我犯了一些愚蠢的錯誤,使我的軌跡 –