Увольнение Popover, созданного Segue на iOS 9

По этому поводу на Stack Overflow есть много вопросов и ответов, но они действительны только для iOS 8 и более ранних версий.

iOS 9 устарела, и ответы на SO больше не работали.

Сказал, что я представляю поповер, выполняя такую ​​передачу

[self performSegueWithIdentifier:@"myPopover" sender:self];

Этот переход создается между текущим viewController и viewController, используемым popover. Там нет кнопки вовлечены. Поповер привязан к виду.

Проблема в том, что на prepareForSegue:identifier

[segue destinationViewController]

это UIViewController а также

[[segue destinationViewController] popoverPresentationController]

это новый UIPopoverPresentationController и этот объект больше не предлагает api dismiss.

Вместо этого мы должны использовать

[self dismissViewControllerAnimated:YES completion:nil];

отклонить поповер, но это не имеет никакого эффекта для меня.

Моя ситуация такова: у меня есть поповер с текстовым полем. Я хочу отклонить поповер, если пользователь прячет клавиатуру.

Итак, я сделал это:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];

а потом

- (void)keyboardWillHide:(NSNotification *)notification {
  [self dismissViewControllerAnimated:YES completion:nil];
}

но это никак не влияет.

Я также попытался создать функцию раскрутки внутри popover viewController и вызвать ее из представленного контроллера представления, но это приводит к сбою приложения.

1 ответ

Решение

Только что попробовал, и все, кажется, работает отлично.

  • Какова ваша иерархия контроллеров представления (контроллеры навигации и т. Д.)?
  • Вы правильно звоните dismissViewControllerAnimated:completion: на том же контроллере представления, который представил поповер?
  • Убедитесь, что нет никакого смешения между дочерним контроллером представления и контроллером навигации.
  • Вы также можете войти в систему контроллера popover view presentingViewController Проверять.
Другие вопросы по тегам