ipad обнаруживает, когда UIPopoverControllers уволены - PullRequest
9 голосов
/ 03 января 2011

В моем универсальном приложении для iPad есть несколько контроллеров uiPopoverController.Теперь у меня есть требование, чтобы вызвать функцию, когда определенный поповер был отклонен.Я могу сделать это легко, если пользователь нажимает «закрыть» внутри поповера, но если они касаются экрана, чтобы скрыть поповер, я не могу запустить свою функцию.

Я уже некоторое время гуглю и не могу показатьсячтобы найти любые методы делегата, которые я мог бы использовать в моем главном контроллере представления, чтобы захватить их.Я хотел бы что-то вроде didDismissPopoverController - но я думаю, что он недоступен.

Если нет, я думаю, что единственное, что нужно сделать, - это обнаружить касания и вызвать срабатывание?В основном я выделяю строку UITableView и загружаю всплывающее окно.Мне нужно отменить выбор строки - поэтому хочу просто вызвать [таблица reloaddata].

Спасибо за любую помощь в этом!

Ответы [ 2 ]

21 голосов
/ 03 января 2011

Вам необходимо назначить делегата для UIPopoverController, а затем реализовать метод - (void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController. Например:

@interface FooController : UIViewController <UIPopoverControllerDelegate> {
    // ...
}
// ...
@end

Когда вы создаете экземпляр UIPopoverController (скажем, для этого примера в FooController) ...

UIPopoverController *popover = // ...
popover.delegate = self;

Затем вы реализуете метод:

- (void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController {
    // do something now that it's been dismissed
}

Конечно, я не проверял это, но похоже, что оно должно работать ...

Надеюсь, это поможет!

4 голосов
/ 06 мая 2012

Вы можете использовать метод делегата popoverControllerDidDismissPopover после следующего назначения: self.popoverController.delegate = self;

Обратите внимание, что метод делегата popoverControllerDidDismissPopover не вызывается, если вы программно вызываете [self.popoverController dismissPopoverAnimated: YES].

...