2013-05-21 68 views
0

我的應用程序每月都有一個視圖,並且在每個月的每一天,在長按時,彈出窗口會顯示。防止一次顯示一個以上的UIPopover

我已經使用self.view setExclusiveTouch:YES來防止同時發生多個popover,但仍偶爾會允許多個popover。

如何防止一次顯示多個UIPopover?

感謝

回答

3

首先聲明一個UIPopoverController類型的屬性(讓我們說activePopover)。

在該方法被稱爲長按做到這一點:

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

然後當你分配UIPopoverController長按它分配給activePopover。 這種方式,你總是忽視可見的popover,然後才提出一個新的。

+0

謝謝。最後是最好的辦法。我犯了一些愚蠢的錯誤,使我的軌跡 –

0

您可以通過它的介紹後,其passthroughViews屬性設置爲空數組禁用外酥料餅的任何互動。

+0

謝謝。我認爲這會奏效,但我犯了一些錯誤,並感到困惑。最後,這是不適合我的 –

0

全局布爾標誌呢?

在全局類或在您的視圖控制器創建爲屬性和與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

希望它有幫助

+0

偉大的想法。我嘗試過,但不知何故,我仍然得到一次顯示多個popover! –

+0

你在哪裏/如何存儲該標誌?它似乎可能會失去它的價值,或者它不會正確設置爲「真」 – Marioea

+0

我正在尋求解決方案。其他一些答案有很好的一點,但它似乎似乎iOS承認額外的觸摸之前,我可以不允許第二次popover。我認爲這是一個時間問題 –