2011-06-22 39 views
1

我在UIView中有多個popovercontroller。 我能夠爲一個popover調用popoverControllerDidDismissPopover方法,但無法對所有popovercontrollers執行相同的操作。objective-c多個popoverviewcontroller

有人可以建議我,我怎麼能做到這一點?

回答

0

你是什麼意思,你可以打電話?你有沒有繼承UIPopoverController,並自己調用方法?

如果您的意思是「當我的pop are被解僱時不會打電話」,我們需要更多信息。在某些情況下,這是指定的行爲。讓我引用文檔:

彈出窗口控制器不響應對dismissPopoverAnimated:方法的編程調用而調用此方法。如果以編程方式關閉彈出窗口,則應在調用dismissPopoverAnimated:方法後立即執行任何清理操作。

如果您有多個彈出窗口並想知道哪一個剛剛被解僱,您必須在方法本身進行比較。

編輯根據您的評論:

的方法是總是稱爲popoverControllerDidDismissPopover:(UIPopoverController *)popoverController。該方法由用戶解散的任何彈出式觸發。如果你有兩種不同的餡料需要不同的定型,你必須在這種方法中區分它們。這就是爲什麼它有參數,其中的彈出把self,指向自己。

你的方法應該是這樣的:

popoverControllerDidDismissPopover:(UIPopoverController *)popoverController 
{ 
    if (popoverController == myFirstPopoverController) 
    { 
     //do something 
    } 

    if (popoverController == mySecondPopoverController) 
    { 
     //do something else 
    } 
} 
+0

我有兩個實例PopoverViewController的(firstPopover和secondpopover)。當第一次換機和第二次換機時,我需要執行一些操作。如果我創建Popover命名實例PopoverViewController然後 - (無效)popoverControllerDidDismissController工作,但是當我寫 - (無效)firstPopoverControllerDidDismissController不起作用。 –

+0

我試着用你的建議代碼,但控制根本就沒有來到popoverControllerDidDismissPopover方法。 –

+0

當popover被取消時,我正在執行NSLOG(@「第一個Popover Dismissed」)NSLOG(@「Second Popover Dismissed」)NSLOG(@「Third Popover Dismissed」) –