Ответ невероятно прост!
Процедура делегирования popoverControllerDidDismissPopover вызывается для вас всякий раз, когда всплывающее окно отклоняется.
Так что просто добавьте этот код в ваш код ...
-(void)popoverControllerDidDismissPopover:
(UIPopoverController *)popoverController
{
NSLog(@"a popover was dismissed! thank you stackoverflow!");
}
OK? Вы также можете использовать popoverControllerShouldDismissPopover, если вы действительно хотите предотвратить его отклонение.
(Обратите внимание - в необычном случае, когда вы работаете с более чем одним поповером, просто проверьте внутри этой подпрограммы, какая именно она удаляется. Так, например, если (popoverController == myPostcodePopover) {} или что-то еще.)
Если вы не знаете, как что-то сделать, решение почти всегда заключается в наличии делегатов в классе, с которым вы работаете.
----------- не забудьте сделать это!
Всякий раз, когда вы используете какой-либо делегат, конечно, вы должны установить делегата на «вы»,
zipcodeEntryPopover.delegate = self;
----------- не забудьте сделать это!
Если вы собираетесь использовать такой делегат, вам просто нужно добавить его в ваши объявления делегатов, где вы объявляете класс в вашем .h файле.
Итак, в вашем .h файле у вас будет что-то вроде этого,
@interface yourHappyThing : UIViewController <ASIHTTPRequestDelegate,
UIAccelerometerDelegate,
thisDelegate,
thatDelegate>
(Часто их там много, как системных делегатов, так и ваших собственных, созданных вами.) Итак, вам просто нужно добавить один для делегата popover, таким образом ...
@interface yourHappyThing : UIViewController <ASIHTTPRequestDelegate,
UIAccelerometerDelegate,
thisDelegate,
thatDelegate,
UIPopoverControllerDelegate>
Это должно сделать это! Если это не сработает, я всегда рад помочь девушке-барби, поэтому, пожалуйста, спросите что-нибудь еще!