Стек контроллеров
Контроллер навигации обслуживает стек контроллеров представления. Любой вид контроллера представления "играет по правилам" установленным для стека. При разработке контролера навигации вам необходимо указать самое первое представление, которое увидит пользователь. Как упоминалось в предыдущих главах, такое представление называется контроллере.
Левого представления (root view controller), или просто корневым контроллером (root 0,iuollef), и служит основанием стека контроллеров представления в контроллере навигации, п и выборе пользователем следующего представления для отображения новый контроллер. Оставления помещается в стек, в результате чего и появляется представление, которым он (стек) управляет. Мы называем эти новые контроллеры представлений подконтроллерами (subcontroller). Как будет показано ниже, приложение Nav, которое мы создадим в этой главе, будет состоять из контроллера навигации и шести под контроллеров.
Обратите внимание на кнопку навигации в левом верхнем углу текущего представления. Кнопка навигации похожа на кнопку перехода на предыдущую с границу в окне веб-браузера. Если пользователь стукнет по этой кнопке, контроллер текущего представления будет извлечен из стека и текущим станет предыдущее представление.
Нам нравится этот шаблон проектирования, так как он позволяет итеративно строить сложные иерархические приложения. Для того чтобы система постоянно находилась в состоянии готовности к работе, нам необязательно знать всю иерархию. Каждый контроллер Должен знать только о существовании своих дочерних контроллеров, чтобы, когда пользователь делает выбор, контроллер мог поместить в стек соответствующий объект нового контроллера. Таким способом можно построить большое приложение из нескольких маленьких оставляющих — именно этим мы и займемся в данной главе.
Контроллер навигации можно назвать сердцем и душой многих iPhone-приложений в приложениях для устройства iPad контроллер навигации играет менее значительную роль В качестве типичного примера можно привести iPhone-приложение Mail, содержащее иерархический контроллер навигации, который позволяет пользователю легко перемещаться между почтовыми серверами, папками и сообщениями. В iPad-версии приложения Mali контроллер навигации никогда не заполняет экран, но отображается либо в виде врезхм либо временного всплывающего окна. Мы погрузимся в эти глубины чуть позже, когда будем рассматривать специализированные iPad-ориентированные функции графического интерфейса пользователя (GUI).
- Дата: 7-12-2014, 18:13