Как заявил @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);
}
Другим возможным решением, которое, вероятно, лучше с точки зрения дизайна, будет передача делегата контроллеру представления, содержащемуся во всплывающем окне. Подробнее здесь. Таким образом, отображаемый контроллер представления может отправлять данные обратно на ваш основной контроллер представления.
person
Mike D
schedule
19.03.2013
UIPopOverController
с блоками? Таким образом, вам не придется заботиться об этом. - person Rui Peres   schedule 19.03.2013