Нормальная работа
Итак, теперь вы знаете, что необходимо создать для нормальной работы прокручиваемого списка: делегата и источник данных. Давайте вернемся к Xcode и создадим их. Для этого необходимо внести изменения в два файла из категории Classes: InstaEmailViewController.h и InstaEmailViewController.m. Оба файла были созданы в начале проекта.
Файлы .h и .ш работают в паре: в заголовочном файле (.h) объявляется интерфейс класса, переменные, действия и т. д., а в файле реализации (.ш) содержится код их фактической реализации. Мы должны изменить заголовочный файл так, чтобы в нем было объявлено о поддержке классом InstaEmailViewController протоколов UIPickerViewDataSource и UIPickerViewDelegate.
Включите описания действий и чувств Васи в список реализации
Переходим к файлу реализации InstaEmailViewController.m. В него необходимо включить реализации обязательных методов протокола, но к этому мы вернемся чуть позднее. А начнем с добавления списков вариантов действий и чувств Майка. Они будут храниться в двух массивах, которые мы объявили в заголовочном файле.
Протокол источника данных содержит два обязательных метода
Начнем с методов протокола источника данных. В заголовочном файле указано, что InstaEmailViewController поддерживает протокол UIPickerViewDatasource. В этот протокол входят два обязательных метода: numberOfComponentsInPickerView:pickerView и pickerView:num berOfRoselnComponent. Так как известно, что в нашем представлении прокручиваемый список будет состоять из двух «колес» (компонентов), мы можем включить соответствующий метод в файл реализации.
Второй метод должен возвращать количество строк для каждого компонента списка. Аргумент component указывает, к какому компоненту относится запрос; первому компоненту соответствует значение 0. Количество строк в компоненте равно количеству элементов в соответствующем массиве.
Методы реализованы, теперь нужно связать их с прокручиваемым списком.
Связывание источника данных с элементом
Итак, протокол источника данных реализован, данные хранятся в положенном месте; остается связать их с элементом. Откройте Interface Builder.
Щелкните правой кнопкой мыши на прокручиваемом списке в представлении, чтобы вызвать окно связей.
Обратите внимание: в качестве владельца файла (Files Owner) для этого представления указан класс InstaEmailViewController, реализующий необходимые протоколы источника данных и делегата. Осталось связать источник данных прокручиваемого списка с контроллером. Для этого щелкните на кружке в строке dataSource и перетащите его на строку Files Owner.
- Дата: 1-12-2014, 22:10