О контроллерах представления
Контроллеры представления являются жизненно важной ссылкой между данными приложения и его визуальным появлением. Каждый раз, когда приложение для iOS выводит на экран пользовательский интерфейс, выведенным на экран содержанием управляют контроллер представления или группа координирования контроллеров представления друг с другом. Поэтому контроллеры представления служат скелетной основой, на которой Вы создаете свои приложения.
iOS обеспечивает много встроенных классов контроллера представления для поддержки стандартных частей пользовательского интерфейса, таких как панели навигации и панели вкладок. Как часть разработки приложения, Вы также реализуете один или несколько пользовательских контроллеров для отображения содержания, определенного для приложения.
Сразу
Контроллеры представления являются традиционными объектами контроллера в шаблоне разработки Model-View-Controller (MVC), но они также делают намного больше. Контроллеры представления обеспечивают много способов поведения, характерных для всех приложений для iOS. Часто, эти способы поведения встроены в базовый класс. Для некоторых способов поведения базовый класс обеспечивает часть решения, и Ваш подкласс контроллера представления реализует пользовательский код для обеспечения остальных. Например, когда пользователь поворачивает устройство, стандартная реализация пытается повернуть пользовательский интерфейс; однако, Ваш подкласс решает, должен ли пользовательский интерфейс быть повернут, и, если так, как конфигурация его представлений должна измениться в новой ориентации. Таким образом комбинация структурированного базового класса и определенных рычагов разделения на подклассы упрощает для Вас настраивать поведение Вашего приложения при приспосабливании руководству по проектированию платформы.
Контроллер представления управляет рядом представлений
Контроллер представления управляет дискретной частью пользовательского интерфейса Вашего приложения. По запросу это обеспечивает представление, которое может быть выведено на экран или взаимодействовало с. Часто, это представление является корневым представлением для более сложной иерархии представлений — кнопки, переключатели и другие элементы пользовательского интерфейса с существующими реализациями в iOS. Контроллер представления действует как центральный агент координирования для этой иерархии представления, обрабатывая обмены между представлениями и любым соответствующим контроллером или объектами данных.
Вы управляете своим содержанием Используя довольный контроллеры представления
Для представления содержания, которое является определенным для приложения Вы реализуете свое собственное довольное контроллеры представления. Вы создаете новые классы контроллера представления путем разделения на подклассы любого UIViewController
класс или UITableViewController
класс, реализовывая методы, необходимые для настоящего и управления Ваше содержание.
Контейнерные контроллеры представления управляют другими контроллерами представления
Контейнерные контроллеры представления выводят на экран содержание, принадлежавшее другим контроллерам представления. Эти другие контроллеры представления явно связаны с контейнером, формируя отношения отцов и детей. Комбинация контейнера и контроллеров представления содержания создает иерархию объектов контроллера представления с единственным корневым контроллером представления.
Каждый тип контейнера определяет свой собственный интерфейс для управления его дочерними элементами. Методы контейнера иногда определяют определенные навигационные отношения между дочерними элементами. Контейнер может также установить определенные ограничения на типы контроллеров представления, которые могут быть его дочерними элементами. Это может также ожидать контроллеры представления, которые являются его дочерними элементами для обеспечения, дополнительное содержание раньше конфигурировало контейнер.
iOS обеспечивает много встроенных контейнерных типов контроллера представления, которые можно использовать для организации пользовательского интерфейса.
Представление контроллера представления временно приносит свое представление на экране
Иногда контроллер представления хочет вывести на экран дополнительную информацию пользователю. Или возможно это хочет, чтобы пользователь предоставил дополнительную информацию или выполнил задачу. Экранное пространство ограничивается на устройствах на iOS; устройство не могло бы иметь достаточного количества комнаты для отображения всех элементов пользовательского интерфейса одновременно. Вместо этого приложение для iOS временно выводит на экран другое представление для пользователя для взаимодействия с. Представление выведено на экран только достаточно долго для пользователя для окончания требуемого действия.
Для упрощения усилия, требуемого реализовать такие интерфейсы, iOS позволяет контроллеру представления представлять другое представление содержание контроллера. Когда представлено, новые представления контроллера представления выведены на экран на части экрана — часто весь экран. Позже, когда пользователь выполняет задачу, представленный контроллер представления говорит контроллер представления, представивший его, что задача завершена. Контроллер представления представления тогда отклоняет контроллер представления, который он представил, восстановив экран к его исходному состоянию.
Поведение представления должно быть включено в проект контроллера представления для него, чтобы быть представленным другим контроллером представления.
Элементы пользовательского интерфейса ссылки раскадровок в интерфейс приложения
Проект пользовательского интерфейса может быть очень сложным. Каждый контроллер представления ссылки многократные представления, устройства распознавания жеста и другие объекты пользовательского интерфейса. В свою очередь, эти объекты поддерживают ссылки на контроллер представления или выполняют определенные части кода в ответ на меры, которые принимает пользователь. И контроллеры представления редко действуют в изоляции. Сотрудничество между многократными контроллерами представления также определяет другие отношения в Вашем приложении. Короче говоря, создание пользовательского интерфейса означает инстанцировать и конфигурировать много объектов и устанавливать отношения между ними, которые могут быть трудоемкими и подверженными ошибкам.
Вместо этого используйте Интерфейсного Разработчика для создания раскадровок. Раскадровка содержит предварительно сконфигурированные экземпляры контроллеров представления и их связанных объектов. Атрибуты каждого объекта могут быть сконфигурированы в Интерфейсном Разработчике, как может отношения между ними.
Во время выполнения, Ваши раскадровки загрузок приложения и использует их для управления интерфейсом приложения. Когда объекты загружаются из раскадровки, они восстанавливаются состоянию, которое Вы сконфигурировали в раскадровке. UIKit также обеспечивает методы, которые можно переопределить для настройки способов поведения, которые не могут быть сконфигурированы непосредственно в Интерфейсном Разработчике.
При помощи раскадровок можно легко видеть, как совмещаются объекты в пользовательском интерфейсе приложения. Вы также пишете меньше кода, чтобы создать и сконфигурировать объекты пользовательского интерфейса Вашего приложения.
Как использовать этот документ
Запустите путем чтения Основ Контроллера Представления, который объясняет, как контроллеры представления работают для создания интерфейса приложения. Затем, читайте Используя Контроллеры Представления в Вашем Приложении, чтобы понять, как использовать контроллеры представления, и встроенные в iOS, и те Вы создаете себя.
Когда Вы готовы реализовать пользовательские контроллеры своего приложения, читайте Создающий Пользовательский Довольный Контроллеры Представления для обзора задач, которые выполняет Ваш контроллер представления, и затем считайте остающиеся главы в этом документе, чтобы изучить, как реализовать те способы поведения.
Предпосылки
Прежде, чем считать этот документ, необходимо быть знакомы с содержанием в приложениях для iOS Разработки Запуска Сегодня и Втором приложении для iOS: Раскадровки. Учебное руководство по раскадровке демонстрирует многие методы, описанные в этой книге, включая следующие понятия Какао:
Определение новых классов Objective C
Роль делегата возражает в управляющих способах поведения приложения
Парадигма Контроллера представления Модели
См. также
Для получения дополнительной информации о стандартных контейнерных контроллерах представления, предоставленных UIKit, см. Каталог Контроллера Представления для iOS.
Для руководства о том, как управлять представлениями в Вашем контроллере представления, см. Руководство по программированию Представления для iOS.
Для руководства о том, как обработать события в Вашем контроллере представления, посмотрите Руководство по Обработке событий для iOS.
Для получения дополнительной информации о полной структуре приложения для iOS, см. Руководство по программированию Приложения для iOS.
Для руководства о том, как сконфигурировать раскадровки в Вашем проекте, см. Обзор XCode