@Anoop が述べたように、通常、一度に表示できるポップオーバーは 1 つだけです。
contentViewController
考えられる解決策の 1 つは、ポップ オーバーでプロパティを確認することです。各View Controllerの参照を保存している場合、次のようなことができます:
- (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);
}
設計の観点からはおそらくより良い別の解決策として、ポップ オーバーに含まれるビュー コントローラーにデリゲートを渡すことが考えられます。詳細はこちら。このようにして、表示されたView ControllerはデータをメインのView Controllerに送り返すことができます。