iOS 11.2, Xcode 9.2
Я пробовал все способы отключить клавиатуру на viewDidDisappear
старого UIViewController
ПОСЛЕ новый UIViewController
помещается в стек UINavigationController
. Но без везения.
Если я закрою его viewWillDisappear
- он закроется, но с анимацией ВО ВРЕМЯ пуш-анимации. Это нежелательное поведение. Я хочу, чтобы старая клавиатура UIViewController
закрывалась только тогда, когда контроллер больше не виден.
Поведение должно быть как в приложении Telegram:
В любом диалоге с видимой клавиатурой нажмите на аватар оппонента, и вы перейдете к информации об аккаунте оппонента. Затем, если вы нажмете кнопку «Назад», вы будете перенаправлены обратно в диалоговое окно. Но клавиатура будет уже уволена.
Любая помощь приветствуется!
P.S. Вопрос может выглядеть как дубликат, но мне не удалось заставить его работать с найденными решениями.
Изменить 1.
Я создал небольшой ТЕСТ-ПРОЕКТ, который представляет собой неспособность достичь желаемого поведение.
Чтобы воспроизвести нежелательное поведение:
- Запустите приложение.
- Нажмите на
UITextField
илиUITextView
и дождитесь появления клавиатуры. - Нажмите кнопку «Далее» и дождитесь нажатия нового контроллера.
- Нажмите кнопку «Назад» и дождитесь появления нового контроллера.
В результате начальный контроллер представления будет иметь активную клавиатуру после действий push/pop. Мне нужно, чтобы клавиатура была скрыта после действий push/pop. Кроме того, клавиатуру не следует убирать до того, как начальный контроллер представления станет невидимым, ее следует убирать после действия viewDidDisappear
.