Кнопка закрытия на адаптивном поповере
В раскадровке у меня есть контроллер корневого представления с кнопкой, которая запускает переход «Представить как поповер» к UINavigationController, содержащему UITableViewController. Я хочу, чтобы навигационный контроллер присутствовал как на iPhone, так и на iPad.
На iPad это прекрасно работает в поповере.
На iPhone я получаю модальное представление, так что теперь мне нужен дополнительный элемент кнопки панели, чтобы отклонить модальное представление. Просматривая видео WWDC, я попытался сделать следующее в корневом контроллере представления:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
UIViewController *vc = segue.destinationViewController;
vc.popoverPresentationController.delegate = self;
}
- (void)dismissPopover {
[self dismissViewControllerAnimated:YES completion:nil];
}
- (UIViewController *)presentationController:(UIPresentationController *)controller viewControllerForAdaptivePresentationStyle:(UIModalPresentationStyle)style {
UINavigationController *nvc = (UINavigationController *)controller.presentedViewController;
UIBarButtonItem *bbi = [[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStyleDone target:self action:@selector(dismissPopover)];
nvc.topViewController.navigationItem.leftBarButtonItem = bbi;
return nvc;
}
Я понимаю-presentationController:viewControllerForAdaptivePresentationStyle:
Метод должен вызываться только тогда, когда пользовательский интерфейс является адаптивным, то есть модальным, однако он не вызывается вообще, даже если он работает модально на iPhone.