2013-07-13 98 views
3

當彈出窗口打開時,如果點擊它就會關閉。是可以阻止這個嗎?基本上我有以下問題。如何檢測彈出窗口消除

當彈出窗口關閉時,我需要一個函數來處理。如果我從popover中設置了一個具有解除函數的按鈕,那麼我可以將該函數放入解除方法中,但是如果用戶單擊屏幕,則不會檢測到該函數。

因此,如果您點擊它,就可以停止彈出窗口關閉。 或 是否有可能檢測到這一點,允許我需要調用的功能。

感謝

詹姆斯

回答

6

您可以使用這兩種方法,但第二個適合您的方案:

/* Called on the delegate when the popover controller will dismiss the popover. Return NO to prevent the dismissal of the view. 
*/ 
- (BOOL)popoverControllerShouldDismissPopover:(UIPopoverController *)popoverController; 

/* Called on the delegate when the user has taken action to dismiss the popover. This is not called when -dismissPopoverAnimated: is called directly. 
*/ 
- (void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController; 

記住落實UIPopoverdelegate和委託設置爲self。

6

假設你正在談論popovers的默認行爲,當您點擊酥料餅的外面被解僱,以防止這種情況的解決方案是使酥料餅模態。

爲此,請在彈出窗口的內容視圖控制器上將modalInPopover屬性設置爲YES

順便說一句 - 如果你想檢測當用戶通過點擊外部彈出來解除彈出時,你需要實現UIPopoverControllerDelegate方法popoverControllerDidDismissPopover:

相關問題