Вопрос

У меня есть многовидный процесс, который пользователь вводит в данные, и я сохраняю его на свойствах класса модели каждый шаг.

я использую textFieldDidEndEditing Чтобы проверить, действителен ли вход, и если да, сохраняет введенные данные.

На представлении у меня есть событие продолжения ButtonClicked, которое проверяет, пройдут ли все проверки, и если это так загружает следующее представление. Я не устанавливаю свойства модели здесь, потому что я думаю, что мне не нужно, так как каждое поле сохранено в поле Model 1 за раз. Однако я заметил некоторые проблемы.

Если пользователь находится внутри текстового поля и нажимает кнопку «Продолжить», событие ContiningButtonClicked стреляет перед textFieldDidEndEditing. Анкет Что в итоге происходит, так это то, что следующее представление заполнено «старой» моделью до сохранения в textFieldDidEndEditing.

Что мне не хватает? Уместно ли установить все свойства на продолжение? Вот как я бы сделал это, если бы программировал Интернет, но это не подходит для нативного приложения.

Это было полезно?

Решение

Можете ли вы попробовать это вместо этого и посмотреть, решает ли это вашу проблему?

textFieldShouldEndEditing:

Другие советы

Вы можете позвонить resignFirstResponder на Active Textfield/TextView (или на всех из них), что запустит textFieldDidEndEditing.

В целом, для таких вопросов редактирования текста еще один подход - злоупотреблять -textField:shouldChangeCharactersInRange:... Метод делегата, в котором вы можете определить новое значение для каждого введенного символа. Вы должны вернуться к этому методу, только если нет другого пути.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top