Модифицирование контроллера, связанного с кнопкой раскрытия
Как все просто, да? Теперь создадим nib-файл, соответствующий этому исходному коду. Не забудьте сохранить внесенные в него изменения.
Выберите папку Resources на панели Groups & Files и нажмите комбинацию клавиш, чтобы создать еще один новый файл. На этот раз выберите из раздела строку User Interface (на левой панели), элемент View XIB (вверху справа) и из раскрывающегося списка Product — пункт iPhone, дайте новому nib-файлу имя DisclosureDetail.xib. Этот файл предназначен для реализации представления, которое должен увидеть пользователь после стука на одной из "мультяшных" кнопок.
Дважды щелкните на имени файла DisclosureDetail.xib на панели Groups & Files, чтобы открыть файл для редактирования. Открыв его, щелкните на пиктограмме Files Owner и нажмите комбинацию клавиш , чтобы открыть инспектор идентичности. Измените базовый класс на DisclosureDetailController. Затем, нажав клавишу
Дважды щелкните на пиктограмме View, чтобы открыть окно редактора. Перетащите элемент Label из библиотеки в окно View (разместите надпись где-то посередине). Используя голубые линии разметки, измените размер прямоугольника надписи, чтобы он занял большую часть ширины представления, а затем воспользуйтесь инспектором атрибутов (он открывается с помощью комбинации клавиш, чтобы центрировать текст. Нажав клавишу
Для этого примера наша таблица мультфильмов должна базировать свои данные на строках из массива, и с этой целью мы объявим объект типа NSArray с именем list. Нам также необходимо объявить переменную для хранения одного экземпляра нашего дочернего контроллера, который будет указывать на экземпляр только что созданного нами класса DisclosureDetailController. Мы могли бы создавать новый экземпляр этого класса контроллера каждый раз, когда пользователь будет стучать по кнопке раскрытия детализированного представления, но эффективнее создать только один экземпляр, а затем повторно использовать его по мере необходимости. Внесите в файл DisclosureButtonController.h изменения.
Обратите внимание на то, что мы не объявили свойство для переменной childController. Мы Кпопьзуем эту переменную экземпляра "для внутреннего пользования" нашим классом и не хотим выставлять ее, так сказать, на всеобщее обозрение, поэтому и не афишируем ее существование объявлением свойства.
- Дата: 10-12-2014, 17:03