Существует много вопросов и ответов на Stack Overflow об этом, но они справедливы для iOS 8 и ранее.Увольнение Popover, созданное segue на iOS 9
iOS 9 отказался от многих вещей, и ответы на SO больше не работали.
Сказал, что я представляю собой поповер, выполняя SEGUE как этот
[self performSegueWithIdentifier:@"myPopover" sender:self];
Этот переход создается между текущим ViewController и ViewController, используемой пирог. Нет кнопки. Попёр привязан к представлению.
Проблема заключается в том, что на prepareForSegue:identifier
[segue destinationViewController]
является UIViewController
и
[[segue destinationViewController] popoverPresentationController]
является новым UIPopoverPresentationController
и этот объект не предлагает увольнять апи больше.
Вместо этого мы должны использовать
[self dismissViewControllerAnimated:YES completion:nil];
уволить поповер, но это не имеет никакого эффекта для меня.
Мое положение: у меня есть popover с текстовым полем. Я хочу отклонить popover, если пользователь скрывает клавиатуру.
Так что я сделал это:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];
, а затем
- (void)keyboardWillHide:(NSNotification *)notification {
[self dismissViewControllerAnimated:YES completion:nil];
}
, но это не имеет никакого эффекта.
Я также попытался создать разворот segue внутри popor viewController и вызывать это из контроллера представления, но это приводит к сбою приложения.
см ссылка может быть поможет вам http://stackoverflow.com/questions/28719306/dismissviewcontrolleranimatedyes-completionnil-not-working-for-ios-device –
Или это http://stackoverflow.com/questions/ 33468698/how-to-detect-when-a-popover-is-уволен-in-ios-9 – iAnurag
@iAnurag - вопрос, который вы упомянули, ничего мне не говорит о том, что я просил ... «как ** уволить ** «нет. – SpaceDog