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

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

Разработчик

Руководство по программированию часов Apple

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

Интерфейсная навигация

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

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

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

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

Реализация основанного на странице интерфейса

Вы конфигурируете основанный на странице интерфейс в раскадровке своего приложения путем создания перехода следующей страницы от одного контроллера интерфейса до следующего.

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

  2. Щелчок управления основной контроллер интерфейса Вашего приложения, и перетаскивает строку перехода к другой сцене контроллера интерфейса.

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

  3. Отпустите кнопку мыши.

  4. Выберите «следующую страницу» из панели перехода отношения.

  5. Используя тот же метод, создайте переходы от каждого контроллера интерфейса до следующего.

    Порядок, в котором Вы создаете свои переходы, определяет порядок страниц в Вашем интерфейсе.

Переходы, которые Вы создаете в своем файле раскадровки, определяют основанный на странице интерфейс, загружающийся, когда запускается Ваше приложение. Можно изменить набор страниц, которые Вы хотите вывести на экран путем вызова reloadRootControllersWithNames:contexts: метод рано в цикле запуска. Например, Вы могли бы призвать тот метод init метод Вашего основного контроллера интерфейса, чтобы вынудить WatchKit загрузить различный набор страниц.

Все контроллеры интерфейса в основанном на странице интерфейсе создаются и инициализируются, прежде чем интерфейс выведен на экран, но только один контроллер интерфейса за один раз выведен на экран. Обычно, WatchKit выводит на экран первый контроллер интерфейса в последовательности первоначально. Для изменения первоначально выведенного на экран контроллера интерфейса вызовите becomeCurrentPage метод от init или awakeWithContext: метод.

Поскольку пользователь перешел от страницы до страницы, WatchKit активирует и деактивировал контроллеры интерфейса соответственно. Во время перехода, в настоящее время видимый контроллер интерфейса didDeactivate метод вызывает, сопровождает вызов к willActivate метод контроллера интерфейса, собирающегося быть выведенным на экран. Используйте willActivate метод для обновления содержания контроллера интерфейса для отражения любых последних изменений.

Реализация иерархического интерфейса

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

При продвижении нового контроллера интерфейса на экран рекомендуется передать объект данных в context параметр pushControllerWithName:context: метод. Этот объект контекста - то, как Вы передаете информацию состояния новому контроллеру интерфейса, прежде чем это появится на экране. Используйте этот объект сказать новый контроллер интерфейса что данные вывести на экран.

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

Представление контроллеров интерфейса модально

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

  • Создайте модальный переход в своем файле раскадровки.

  • Вызовите presentControllerWithName:context: метод для представления единственного контроллера интерфейса модально.

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

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

Верхний левый угол модального интерфейса выводит на экран строку заголовка контроллера интерфейса. Когда пользователь касается той строки, WatchKit отклоняет модальный интерфейс. Установите строку заголовка для отражения значения отклонения модального интерфейса. Например, при отображении информации, Вы могли бы установить строку в Done или Close. Если Вы не указываете заголовок для своего контроллера интерфейса, WatchKit выводит на экран строку Cancel по умолчанию.