Что вы имеете в виду, что вы можете позвонить?Вы подкласс UIPopoverController и сами вызывали метод?
Если вы имеете в виду «он не вызывается, когда мои всплывающие окна отклоняются», нам нужна дополнительная информация.Это определенное поведение в некоторых обстоятельствах.Позвольте мне процитировать из документов:
Контроллер всплывающих окон не вызывает этот метод в ответ на программные вызовы метода dismissPopoverAnimated:
.Если вы закрыли поповер программно, вы должны выполнить любые действия по очистке сразу после вызова метода dismissPopoverAnimated:
.
Если у вас несколько всплывающих окон и вы хотите узнать, какой из них только что был удален, вынужно сделать сравнение в самом методе.
РЕДАКТИРОВАТЬ на основе вашего комментария:
Метод всегда называется popoverControllerDidDismissPopover:(UIPopoverController *)popoverController
.Этот метод вызывается любым всплывающим окном, которое отклонено пользователем.Если у вас есть два разных всплывающих окна, которые требуют разной финализации, вы должны различать их в этом методе.Вот почему у него есть параметр, в котором поповеры ставят self
, указатель на себя.
Ваш метод должен выглядеть следующим образом:
popoverControllerDidDismissPopover:(UIPopoverController *)popoverController
{
if (popoverController == myFirstPopoverController)
{
//do something
}
if (popoverController == mySecondPopoverController)
{
//do something else
}
}