Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека Разработчика iOS

Разработчик

Начните Разрабатывать приложения для iOS Сегодня

PDF
На этой странице

Определение взаимодействия

приложения для iOS основываются на событийно-управляемом программировании. Т.е. поток приложения определяется событиями: системные события и пользовательские действия. Пользователь выполняет действия с интерфейсом, инициировавшие события в приложении. Эти события приводят к выполнению логики приложения и манипулированию ее данными. Ответ приложения на пользовательское действие тогда отражается назад в интерфейсе. Поскольку пользователь, а не разработчик, управляет, когда определенные части кода приложения выполняются, Вы хотите идентифицировать точно, какие действия пользователь может выполнить и что происходит в ответ на те действия.

Вы определяете большую часть своей логики обработки событий в поле зрения контроллеры. Контроллеры являются объектами, поддерживающими Ваши представления путем ответа на пользовательские действия и заполнения представлений с содержанием. Объекты контроллера являются кабелепроводом, через который представления взаимодействуют с моделью данных. Представления уведомляются относительно изменений в данных модели через контроллеры приложения, и контроллеры передают инициируемые пользователями изменения — например, текст, введенный в текстовом поле — к объектам модели. Отвечают ли они на пользовательские действия или определяют навигацию, контроллеры реализуют поведение Вашего приложения.

image: ../Art/ModelViewController_c_2x.png

Контроллеры представления

После создания основной иерархии представления следующий шаг должен управлять визуальными элементами и реагировать на ввод данных пользователем. В приложении для iOS Вы используете контроллер представления (UIViewController) управлять довольным представление с его иерархией подпредставлений.

image: ../Art/view_layer_objects_2x.png

Контроллер представления не является частью иерархии представления, и это не элемент в Вашем интерфейсе. Вместо этого это управляет объектами представления в иерархии и предоставляет им поведение. Каждый довольный иерархии представления, которую Вы создаете в своей раскадровке, нужен соответствующий контроллер представления, ответственный за управление интерфейсными элементами и выполнение задач в ответ на взаимодействие с пользователем. Это обычно означает писать пользовательское UIViewController подкласс для каждого довольного иерархия представления. Если Ваше приложение имеет многократные представления содержания, Вы используете различный пользовательский класс контроллера представления для каждого довольного представление.

Контроллеры представления играют много ролей. Они координируют поток информации между моделью данных приложения и представлениями, выводящими на экран те данные, управляющими жизненным циклом их представлений содержания и обрабатывающими изменения ориентации, когда повернуто устройство. Но возможно их самая очевидная роль должна реагировать на ввод данных пользователем.

Вы также используете контроллеры представления для реализации переходов от одного типа содержания другому. Поскольку приложения для iOS имеют ограниченную сумму пространства, в котором можно вывести на экран содержание, контроллеры представления обеспечивают, инфраструктура должна была удалить представления одного контроллера представления и заменить их представлениями другого.

Для определения взаимодействия в приложении Вы заставляете свои файлы контроллера представления связаться с представлениями в Вашей раскадровке. Вы делаете это путем определения соединений между раскадровкой и файлами исходного кода посредством действий и выходов.

Действия

Действие является частью кода, это соединяется с событием, которое может произойти в Вашем приложении. Когда то событие имеет место, код выполняется. Можно определить действие для выполнения чего-либо от управления частью данных к обновлению пользовательского интерфейса. Вы используете действия для управления потоком приложения в ответ на пользовательские или системные события.

Вы определяете действие путем создания и реализации метода с IBAction возвратите тип и a sender параметр.

  1. - (IBAction)restoreDefaults:(id)sender;

sender параметр указывает на объект, который был ответственен за инициирование действия. IBAction возвратитесь тип является специальным ключевым словом; это походит void ключевое слово, но это указывает, что метод является действием, с которым можно соединиться от раскадровки в Интерфейсном Разработчике (который является, почему ключевое слово имеет IB префикс). Вы узнаете больше, как соединиться IBAction действие к элементу в Вашей раскадровке в Учебном руководстве: Раскадровки.

Выходы

Выходы обеспечивают способ сослаться на интерфейсные объекты — объекты, которые Вы добавили к своей раскадровке — от файлов исходного кода. Для создания выхода Перетащите управление от определенного объекта в раскадровке к файлу контроллера представления. Эта работа создает свойство для объекта в Вашем файле контроллера представления, позволяющем Вам доступ, и управляйте тем объектом от кода во время выполнения. Например, во втором учебном руководстве, Вы создадите выход для текстового поля в Вашем приложении ToDoList, чтобы быть в состоянии получить доступ к содержанию текстового поля в коде.

Выходы определяются как IBOutlet свойства.

  1. @property (weak, nonatomic) IBOutlet UITextField *textField;

IBOutlet ключевое слово говорит XCode, что можно соединиться с этим свойством от Интерфейсного Разработчика. Вы узнаете больше, как соединить выход от раскадровки до исходного кода в Учебном руководстве: Раскадровки.

Средства управления

Управление является объектом пользовательского интерфейса, таким как кнопка, ползунок, или переключите это, пользователи управляют, чтобы взаимодействовать с содержанием, обеспечить ввод, перейти в приложении и выполнить другие действия, которые Вы определяете. Средства управления позволяют Вашему коду получить сообщения от пользовательского интерфейса.

Когда пользователь взаимодействует с управлением, событие управления создается. Событие управления представляет различные физические жесты, которые пользователи могут сделать на средствах управления, таких как то, чтобы шевелить пальцем от управления, перетаскивания пальца на управление и приземление в текстовом поле.

Существует три общих категории событий управления:

  • Коснитесь и перетащите события, происходят, когда пользователь взаимодействует с управлением с касанием, или перетащить. Когда пользователь первоначально касается пальца кнопки, например, событие Touch Down Inside инициировано; если пользователь перетаскивает из кнопки, соответствующие события перетаскивания инициированы. Исправьте Внутри отправляется, когда пользователь шевелит пальцем от кнопки в то время как все еще в границах краев кнопки. Если пользователь перетащил палец вне кнопки прежде, чем пошевелить пальцем, эффективно отменив касание, событие Touch Up Outside инициировано.

  • Когда пользователь редактирует текстовое поле, события редактирования имеют место.

  • Измененные на значение события имеют место, когда пользователь управляет управлением, заставляя его испустить серию различных значений.

Поскольку Вы определяете взаимодействия, знаете действие, это связано с каждым управлением в Вашем приложении, и затем сделайте цель того управления очевидной для пользователей в Вашем интерфейсе.

Контроллеры навигации

Если Ваше приложение имеет больше чем одну иерархию представления содержания, необходимо быть в состоянии перейти между ними. Для этого Вы будете использовать специализированный тип контроллера представления: контроллер навигации (UINavigationController). Контроллер навигации управляет переходами назад и вперед через серию контроллеров представления, такой как тогда, когда пользователь перешел через почтовые ящики, сообщения ящика входящих сообщений и отдельные электронные письма в Почтовом приложении iOS.

Набор контроллеров представления, которыми управляет определенный контроллер навигации, вызывают его штабелем навигации. Штабель навигации является набором метода «последним пришел - первым вышел» пользовательских объектов контроллера представления. Первый элемент, добавленный к штабелю, становится корневым контроллером представления и никогда не выталкивается от штабеля. Другие контроллеры представления могут спешиться или выталкиваться от штабеля навигации.

Несмотря на то, что основное задание контроллера навигации должно управлять представлением Вашего довольного контроллеры представления, это также ответственно за представление пользовательских собственных представлений. В частности это представляет панель навигации — представление наверху экрана, обеспечивающего контекст о месте пользователя в иерархии навигации — который содержит кнопку «Назад» и другие кнопки, которые можно настроить. Каждый контроллер представления это добавляется к штабелю навигации, представляет эту панель навигации. Вы ответственны за конфигурирование панели навигации.

Вы обычно не должны выполнять работу для сования контроллера представления прочь штабеля навигации; кнопка «Назад», предоставленная контроллером навигации, обрабатывает это для Вас. Однако действительно необходимо вручную продвинуть контроллер представления на штабель. Можно сделать это использование раскадровки.

Используйте раскадровки для определения навигации

До сих пор Вы узнали об использовании раскадровок для создания единственного экрана содержания в приложении. Теперь, Вы узнаете об использовании их для определения потока между многократными сценами в приложении.

В первом учебном руководстве раскадровка, с которой Вы работали, имела одну сцену. В большинстве приложений раскадровка составлена из последовательности сцен, каждая из которых представляет контроллер представления и его иерархию представления. Сцены соединяются переходами, представляющими переход между двумя контроллерами представления: источник и место назначения.

image: ../Art/segue_callout_2x.png

Существует несколько типов переходов, которые можно создать в раскадровке:

  • Показать. Переход шоу продвигает новое содержание поверх штабеля контроллера текущего представления. То, где содержание обнаруживается, зависит от расположения контроллеров представления в сцене.

  • Покажите подробность. Подробность шоу непосредственно переходит или нажатия новое содержание поверх штабеля контроллера текущего представления, или заменяет содержание, которое это показано, в зависимости от расположения контроллеров представления в сцене.

  • Представьте модально. Модальный переход является одним контроллером представления, представляющим другой контроллер модально, требуя, чтобы пользователь выполнил работу на представленном контроллере прежде, чем возвратиться к основному потоку приложения. Модальный контроллер представления не добавляется к штабелю навигации; вместо этого, это обычно считало дочерний элемент контроллера представления представления. Контроллер представления представления ответственен за отклонение модального контроллера представления, который это создало и представило.

  • Представление легкой сдобы. Представленный контроллер представления показан как легкая сдоба, привязанная на существующем представлении.

  • Пользовательский. Можно определить собственный переход путем разделения на подклассы UIStoryboardSegue.

  • Успокоиться. Раскрутить переход перемещается назад через один или несколько переходов для возврата пользователя существующему экземпляру контроллера представления. Вы используете, раскручивают переходы для реализации обратной навигации.

В дополнение к переходам сцены могут быть соединены отношением. Например, существует отношение между контроллером навигации и его корневым контроллером представления. В этом случае отношение представляет включение корневого контроллера представления контроллером навигации.

Теперь, когда Вы изучили основы работы с представлениями и просматриваете контроллеры в раскадровках, пора включить это знание в Ваше приложение ToDoList в следующем учебном руководстве.