Редактирование полей
В главе 4 мы отключили редактирование полей на панели Utilities. Если клавиатура не появляется на экране, попробуйте вернуться в Interface Builder и проверить, разрешено ли редактирование полей.
Но что происходит после того, как текст будет набран?
Все хорошо, конечно, но после ввода рецепта ничего не происходит Представление не уходит с экрана, и рецепт не включается в список.
Похоже, у нас проблема.
Вообще-то это сразу две взаимосвязанных проблемы. Ранее мы решили, что детализированное представление должно закрываться одним из двух способов: либо при отмене, либо при сохранении данных. Мы должны включить в представление соответствующие кнопки.
Как расположить кнопки сохранения и отмены? Есть ли у нашего представления какие-то особенности, которые необходимо учесть?
У нашего модального представления нет навигационной панели.
Чтобы логика работы представления не отличалась от логики остальных представлений DrinkMixer, следует разместить кнопки сохранения и отмены в верхней части представления на навигационной панели. Но тут возникает одна проблема: в модальной версии детализированного представления такой панели нет.
Панель можно было бы добавить вручную, но вспомните: мы используем файл .xib детализированного представления, которое получает навигационную панель от контроллера. Так как представление для ввода информации отображается как модальное, оно закрывает навигационную панель.
Вместо того чтобы пытаться решить проблему на уровне .xib детализированного представления, мы можем встроить представление для ввода информации в собственный навигационный контроллер.
Создание кнопок сохранения и отмены.
Так как обе кнопки должны закрывать модальное представление, для начала свяжем их с выполнением этой операции. Нам понадобятся сами кнопки и некоторые действия. Вы уже знаете, как создать необходимые связи в Interface Builder; при желании мы могли бы воспользоваться этим способом, но на этот раз мы напишем программную реализацию, чтобы вы поняли, как работает этот способ.
Так как мы используем навигационную панель, встроенная поддержка левой и правой кнопок уже присутствует. Остается создать эти кнопки и присвоить их leftBarButtonltem и rightBarButtonltem, чтобы разместить в нужных местах.
- Дата: 19-12-2014, 17:46