Элементы навигации приложения
Здесь нет ничего сногсшибательного: этот код настраивает изображение, подготавливаемое главным представлением нашего приложения (в данном случае этим занимается класс UlSplitViewController, который должен включить все, подлежащее отображению), — это уже неоднократно описывалось в наших статьях — и в конце выполняет некоторые операции по "уборке территории".
А теперь рассмотрим класс RootViewController, который настраивает табличное представление, содержащее элементы навигации приложения. Файл RootViewController.h выглядит так.
Здесь изрядное количество логики, но, к счастью, среда Xcode предоставляет ее как часть шаблона раздельного представления. То, что вы видите, составляет содержимое стандартного контроллера табличного представления. Однако в приведенном выше коде есть ряд нюансов, относящихся к iPad, на которые стоит обратить внимание.
Во-первых, метод viewDidLoad включает строку, которая устанавливает для представления свойство contentSizeForViewInPopover. По названию можно догадаться о назначении этого свойства: оно устанавливает размер, который будет использован, если этот контроллер представления будет задействован для изображения, формируемого контроллером всплывающего меню. Этот прямоугольник должен быть в ширину не меньше 320 пикселей, но можно установить и большее значение. О всплывающих меню мы поговорим чуть позже в этой главе.
Во-вторых, стоит остановиться на методе. Обычно в iPhone-приложениях вы программно задаете конкретную ориентацию, если она подходит для ваших целей. Но в iPad-приложениях рекомендуется позволить пользователям самим делать выбор. Если вы не программируете игру, в которой важно сразу настроить конкретную ориентацию, то почти всегда этот метод в iPad-приложениях настраивается на возврат значения YES.
Наконец, заслуживает рассмотрения метод tableViewididSelectRowAt IndexPath. В предыдущих главах при реализации контроллеров табличного представления, которые реагируют на выбор пользователем строки в таблице, на этом этапе вы обычно создавали новый контроллер представления и помещали его в стек контроллера навигации. Но в данном приложении контроллер приложения, который мы хотим отобразить, уже на месте, это экземпляр класса DetailViewController, содержащийся в xib-файле. Поэтому здесь нам лишь нужно сообщить этому Detai lViewController-экземпляру, что именно отображать.
Последним классом, созданным для нас средой Xcode, является класс DetailView Controller, который "отвечает" за реальное отображение элемента, выбранного пользователем. Выше мы уже рассмотрели nib-файл DetailView.xib. Теперь приведем содержимое файла DetailViewController.h.
- Дата: 17-12-2014, 09:11