正如@Anoop 所说,您通常一次只能显示一个弹出窗口。
一种可能的解决方案是检查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);
}
另一种可能的解决方案(从设计的角度来看可能更好)是将委托传递给包含在弹出窗口中的视图控制器。更多在这里。这样,显示的视图控制器可以将数据发送回您的主视图控制器。