Один метод
Протокол делегата состоит Всего из одного метода
Протокол UIPickerViewDelegate состоит из одного обязательного метода (строго говоря, он состоит из двух необязательных методов, один из которых необходимо реализовать). Мы будем использовать метод pickerView:titleForRow:forComponent, который должен возвращать объект NSString с заголовком заданной строки в заданном компоненте. Нумерация строк и компонентов также начинается с 0, поэтому для выбора массива можно использовать параметр component, а для индексирования элемента — параметр row.
Снова щелкните правой кнопкой мыши на прокручиваемом списке и вызовите окно связей.
Владелец файла также реализует протокол делегата. Щелкните на кружке в строке Delegate и перетащите его в строку Files Owner.
Сохраните приложение и запустите его командой Run (3€+R). На экране появляется окно Simulator — все должно нормально работать!
Чтобы прокручиваемый список работал, он должен быть связан с делегатом и источником данных.
В прокручиваемом списке «колеса» называются компонентами.
Пункты прокручиваемого списка называются строками.
Протоколы определяют сообщения, которые могут быть реализованы вашим классом. Некоторые из этих сообщений могут быть необязательными.
Все это, конечно, хорошо. И колесики получились симпатичные. Но кнопка «Send Email» ничего не делает.
А теперь мы научим кнопку отправлять сообщения.
Прокручиваемый список работает, но при нажатии кнопки «Send Email» ничего не происходит. Мы еще должны научить кнопку реагировать на действия Майка, а приложение — строить и отправлять сообщения электронной почты.
Подумайте, что необходимо сделать для того, чтобы кнопка заработала. Какие файлы мы будем использовать? Что должна делать кнопка?
Мы должны вернуться к представлению и связать обработчик с событием TouchUpInside кнопки «Send Email», верно? Совсем как в приложении iDecide?
Да! Мы еще должны реализовать функциональность делегата, которая будет активизироваться этой кнопкой, но общая схема выглядит именно так.
Действия, ссылки и события
В приложении iDecide кнопка связывалась с действиями IBAction и ссылками IBOutlet. Давайте вспомним, как работала эта схема.
Сегодня в студии: IBAction: дела важнее слов
Привет, IBOutlet. И каково это — быть на второстепенных ролях?
Мм. Я — действие, и делами занимаюсь именно я. Моя работа — сделать что-то полезное, когда происходит событие. И это «что-то» действительно делается. А ты просто сидишь и указываешь.
Да, но когда пользователь что-то делает, это происходит благодаря мне! Я сохраняю данные, я отправляю электронную почту!
Правда? И от большой важности компилятор тебя просто игнорирует!
Просто чтобы ты знал: «1В» в IBAction означает «Interface Builder»
- Дата: 2-12-2014, 10:57