Функции Back и Navigate
Эти функции изменяют отображаемый экран.
Обзор
Большинство приложений содержат несколько экранов. Чтобы изменить отображаемый экран, используйте функции Back и Navigate. Например, если вы хотите, чтобы при нажатии этой кнопки отображался другой экран, можно задать в качестве значения свойства OnSelect для кнопки формулу с функцией Navigate. Чтобы управлять переключениями одного экрана на другой, в этой формуле можно указать визуальный переход, например Fade.
Назад и Навигация изменяют только отображаемый экран. Экраны, которые в настоящее время не отображаются, продолжают работать в фоновом режиме. Вы можете создавать формулы, ссылающиеся на свойства элементов управления других экранов. Например, пользователь может изменить значение ползунка на одном экране, перейти на другой экран, который использует это значение в формуле, и определить, как изменения повлияют на работу нового экрана. Пользователь может вернуться к исходному экрану и проверить, что значение ползунка было сохранено.
Контекстные переменные также сохраняются, когда пользователь переходит между экранами. Чтобы задать одну или несколько переменных контекста для экрана, который будет отображаться формулой, используйте функцию Navigate. Это единственный способ задать переменную контекста вне экрана. Этот подход можно использовать для передачи параметров на экран. Если вы используете другое средство программирования, этот подход аналогичен переносу параметров в процедуры.
Используйте свойство StartScreen объекта Приложение для управления первым отображаемым экраном.
Любую из этих функций можно использовать только в формуле управления поведением.
Перейти
Применимо к: Приложениям Canvas Приложениям, управляемым моделями
Для первого аргумента укажите имя отображаемого экрана.
Для второго аргумента укажите способ изменения старого экрана на новый.
Аргумент перехода | Описание | Демонстрация |
---|---|---|
ScreenTransition.Обложка | Новый экран появляется, перемещаясь справа налево, чтобы закрыть текущий экран. | |
ScreenTransition.CoverRight | Новый экран появляется, перемещаясь слева направо, чтобы закрыть текущий экран. | |
ScreenTransition.Fade | Текущий экран плавно исчезает, открывая новый экран. | |
ScreenTransition.None (По умолчанию) | Новый экран быстро заменяет текущий экран. | |
ScreenTransition.UnCover | Текущий экран исчезает, перемещаясь справа налево и открывая новый экран. | |
ScreenTransition.UnCoverRight | Текущий экран исчезает, перемещаясь слева направо и открывая новый экран. |
Вы можете использовать функцию Navigate, чтобы создать или обновить переменные контекста нового экрана. В виде необязательного третьего аргумента передайте запись, содержащую имя переменной контекста как имя столбца, и новое значение для переменной контекста. Эта запись аналогична записи, которую вы использовали с функцией UpdateContext.
Для старого экрана задайте свойство OnHidden, для нового — OnVisible или задайте оба свойства, чтобы внести дополнительные изменения в процедуру перехода. При этом будет обновлено свойство App.ActiveScreen.
Navigate обычно возвращает true но вернет false в случае возникновения ошибки.
Переменные контекста для навигации описаны в статье о перемещении между экранами.
BACK
Применимо к: приложениям Canvas
Функция Back возвращает на экран, который был показан последним.
Для каждого вызова функции Navigate приложение отслеживает появившийся экран и переход. Вы можете использовать последовательные вызовы функции Back, чтобы вернуться полностью к экрану, который появился, когда пользователь запустил приложение.
Когда запускается функция Back, обратный переход используется по умолчанию. Например, если экран появился через переход CoverRight, функция Back использует эффект UnCover (который влево), чтобы вернуться. Fade и None являются своими собственными инверсиями. Передайте необязательный аргумент в функцию Back, чтобы использовать конкретный переход.
Back обычно возвращает true но возвращает false если пользователь не перешел на другой экран с момента запуска приложения.
Синтаксис
Назад( [ Переход ] )
- Переход - Необязательно. Визуальный переход, используемый при переходе между текущим экраном и предыдущим. Допустимые значения для этого аргумента см. ранее в этой статье. По умолчанию переход, через который возвращается экран, является обратным переходу, через который он появился.
Навигация( Экран [, Переход [, ОбновлениеКонтекстнойЗаписи ] ] )
- Экран - Обязательно. Отображаемый экран. Вместо Экрана вы также можете использовать элемент управления, расположенный на экране, к которому вы хотите перейти.
- Переход - Необязательно. Визуальный переход, используемый при переходе между текущим экраном и следующим. Допустимые значения для этого аргумента см. ранее в этой статье. Значение по умолчанию — None.
- UpdateContextRecord - Необязательно. Запись, содержащая имя как минимум одного столбца и значение каждого из них. Эта запись обновляет переменные контекста нового экрана таким же образом, как при передаче их функции UpdateContext.
Примеры
Формула | Описание | Результат |
---|---|---|
Навигация(Подробности) | Отображается экран Details без эффекта перехода или изменения значения переменной контекста. | Экран Details отображается быстро. |
Навигация(Подробности, ScreenTransition.Fade) | Отображается экран Details с переходом типа Fade. Значение переменной контекста не меняется. | Текущий экран исчезает, и отображается экран Details. |
Навигация(Подробности, ScreenTransition.Fade, { ID: 12 } ) | Отображается экран Details с переходом типа Fade, и значение переменной контекста ID меняется на 12. | Текущий экран исчезает, и отображается экран Details, а для переменной контекста ID задается значение 12. |
Навигация(Подробности, Переход экрана.Затухание, { ID: 12, Оттенок: Цвет.Красный } ) | Отображается экран Details с переходом типа Fade. Значение переменной контекста ID изменяется на 12, а значение переменной контекста Shade — на Color.Red. | Текущий экран исчезает, и отображается экран Details. Для переменной контекста ID на экране Details задается значение 12, а для переменной контекста Shade — значение Color.Red. Если на экране Details задать для свойства Fill элемента управления значение Shade, этот элемент управления будет отображаться красным цветом. |
Назад() | Отображение предыдущего экрана с обратным переходом по умолчанию. | Отображается предыдущий экран с использованием перехода, обратного переходу, с использованием которого появился текущий экран. |
Назад( ScreenTransition.Cover ) | Отображение предыдущего экрана с переходом Cover. | Отображается предыдущий экран с использованием перехода Cover, независимого от перехода, с использованием которого появился текущий экран. |
Пошаговое руководство
Создайте пустое приложение.
Добавьте второй экран к нему.
Приложение содержит два пустых экрана: Screen1 и Screen2.
Задайте для свойства Fill экрана Screen2 значение
Gray
.На экране Screen2 добавьте кнопку и задайте для ее свойства OnSelect следующую формулу:
Navigate( Screen1, ScreenTransition.Cover )
Удерживая нажатой клавишу ALT, выберите эту кнопку.
Экран 1 появляется с белым фоном через переход, который охватывает левую часть.
На экране Screen1 добавьте кнопку и задайте для ее свойства OnSelect следующую формулу:
Back()
Удерживая нажатой клавишу ALT, выберите эту кнопку.
Второй экран появляется с серым фоном через переход, который открывает вправо (обратная операция для Cover).
Выберите кнопку на каждом экране несколько раз, чтобы переходить назад и вперед.