Ответ 1
Вы сделали очень необычную вещь: вы привязали инициированный переход к текстовому полю, как его действие. Поэтому вопрос просто: что это значит? В частности, что вызывает срабатывание тайгера, прикрепленного к текстовому полю? Что такое "действие" текстового поля?
Я имею в виду, что мы знаем, что вызывает нажатие кнопки с нажатой кнопкой: это означает, что пользователь нажал кнопку. И мы знаем, что вызывает триггер с привязкой к ячейке просмотра таблицы: это то, что пользователь выбирает ячейку. Но как насчет текстового поля? Что должен сделать пользователь, чтобы вызвать его действие?
"Расслабляющий" бизнес - это красная селедка, поэтому пусть это исключает наше мышление. Удалите текстовое поле со второго контроллера представления и поместите его в первый контроллер представления. Прикрепите действие текстового поля как modal segue ко второму контроллеру представления.
Теперь рассмотрите текстовое поле в первом контроллере представления. Он ведет себя так, как вы описали:
-
Если мы щелкнем текстовое поле и нажмем и нажмем на возврат, ничего не произойдет.
-
Если мы добавим в конец поля "Конец выхода" в текстовое поле и введите и нажмите "Возврат", клавиатура будет отклонена, и мы перейдем к ней.
Хорошо, подумайте об этой фразе "ничего не случится" в первом пункте. Клавиатура не увольняется! Но увольнение клавиатуры - это текстовое поле "действие". Не было никаких действий. Таким образом, запуск действия не происходит.
Теперь попробуйте этот эксперимент: сделайте диспетчер представлений делегатом текстового поля и реализуйте этот метод:
extension ViewController : UITextFieldDelegate {
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true
}
}
Введите текстовое поле и нажмите Return. Клавиатура отклоняется, и мы переходим к следующему контроллеру. Отклоняя клавиатуру в ответ, клавиша Return - это действие текстового поля.
Таким образом, вы видите, что в некотором смысле обе развязки и ДиДеонОнЭксит были красными сельдевыми, так как я просто сделал то же самое без них. Каково значение текстового поля Action и запуск его действия Segue в ответ.