正如@Anoop所說的,通常每次只能顯示一個popover。
一個可能的解決方案是檢查彈出的contentViewController
屬性。如果你是存儲每個視圖控制器的一個參考,你可以這樣做:
- (void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController {
if (popoverController.contentViewController == self.someUIViewController) {
// do stuff
}
else if (popoverController.contentViewController == someoTherViewController) {
//
}
NSLog(@"Popover dismised %@", popoverController);
}
如果存儲到每個內容視圖控制器的引用是不可能的(或者只是不是一個好主意),你總是可以檢查其類型:
- (void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController {
if ([popoverController.contentViewController isKindOfClass:[MyAwesomeViewController class]]) {
// do stuff
}
else if ([popoverController.contentViewController isKindOfClass:[MyOtherViewController class]]) {
//
}
NSLog(@"Popover dismised %@", popoverController);
}
另一種可能的解決方案,這可能是從一個設計觀點看較好,將在一個代理傳遞到包含在彈出在視圖控制器。 More here。這樣,顯示的視圖控制器可以將數據發送回您的主視圖控制器。
也許你可以使用'UIPopOverController'積木?這樣你就不必關心這一點。 – Peres 2013-03-19 13:47:40
你想要達到什麼目標? – 2013-03-19 13:59:10
我的目標是,當某個特定的popover被解僱時,我可以更新幾個不同的按鈕狀態。但是直到流行病被解僱之後。是的,我可以不斷更新按鈕狀態,無論什麼改變,但這不是我的要求。 – JasonBourne 2013-03-19 14:22:24