Простое решение проблемы
Сложных решений существует много, а хороших «простых» — куда меньше. В общем случае самый простой способ расширения функциональности заключается в максимально широком использовании уже написанного кода, безусловно, мы можем воспользоваться готовым навигационным контроллером. Давайте посмотрим, нельзя ли как-то приспособить к делу наше представление DetailDrinkView.
Перед вами табличное представление DrinkMixer с двумя способами добавления новых записей. Какой из них лучше подходит для добавления новых рецептов, исходя из эстетических сообщений, удобства использования и стандартов поведения приложений для iOS?
Добавление рецептов с использованием кнопок навигационного контроллера.
Ранее мы использовали навигационный контроллер для переключения между представлениями. Но если у вас имеется опыт работы с другими приложениями iOS, то вы наверняка знаете, что он способен на большее. Так как представление UlTableView почти всегда встраивается в навигационный контроллер, для редактирования содержимого таблиц обычно используются кнопки самого контроллера. Для начала добавим на панель навигационного контроллера кнопку+, при нажатии которой пользователь сможет включить в список новый рецепт.
В среде Xcode включите в навигационный контроллер кнопку, а также связанные с ней IBAction и IBOutlet.
Откройте файл RootViewController.xib в редакторе графического интерфейса.
Прокрутите содержимое библиотеки и перетащите в главное окно кнопку Bar Button Item (она появляется в списке после табличного представления). На панели навигационного контроллера в редакторе эта кнопка не отображается — необходимо добавить программный код, который будет отображать ее во время выполнения.
Добавьте переменную экземпляра и объявление свойства addButton, a maloke объявление IBAction для addButtonPressed.
Как и в случае с любой другой кнопкой, в программный код необходимо включить действие IBAction для нажатия кнопки и ссылку на саму кнопку — все эти объявления включаются в RootViewController.h.
Добавьте (©synthesize, вызов release и метод addButtonPressed для addButton.
Включите директиву @synthesize для свойства, освободите ссылку и реализуйте метод addButtonPressed, который будет выводить сообщение на консоль при нажатии кнопки — все это делается в RootViewController.m.
Создайте необходимые связи.
Снова откройте RootViewController.xib и свяжите новую кнопку с действиями и ссылками в главном окне.
Наконец, откройте перечень свойств кнопки на панели Utilities и замените значение Identifier на Add.
- Дата: 17-12-2014, 15:51