В Stack Overflow есть много вопросов и ответов по этому поводу, но они действительны только для iOS 8 и более ранних версий.
В iOS 9 многие вещи устарели, и ответы на SO больше не работали.
Сказал, что я представляю поповер, выполняя такой переход.
[self performSegueWithIdentifier:@"myPopover" sender:self];
Этот переход создается между текущим viewController и viewController, используемым всплывающим окном. Кнопка не задействована. Всплывающее окно привязано к представлению.
Проблема в том, что на prepareForSegue:identifier
[segue destinationViewController]
это UIViewController
и
[[segue destinationViewController] popoverPresentationController]
это новый UIPopoverPresentationController
, и этот объект больше не предлагает отклонить API.
Вместо этого мы должны использовать
[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 и вызвать его из контроллера представления представления, но это приводит к сбою приложения.
self presentingViewController
дает мне ноль внутри контроллера всплывающего окна. - person Duck   schedule 09.12.2015keyboardWillHide:
? - person jcaron   schedule 09.12.2015dismissViewControllerAnimated:completion
на том же контроллере представления, который представил всплывающее окно? Убедитесь, что нет путаницы между дочерним контроллером представления и контроллером навигации. Вы также можете зарегистрироватьpresentingViewController
контроллера всплывающего окна для проверки. - person jcaron   schedule 09.12.2015