Функции Back и Navigate

Эти функции изменяют отображаемый экран.

Обзор

Большинство приложений содержат несколько экранов. Чтобы изменить отображаемый экран, используйте функции Back и Navigate. Например, если вы хотите, чтобы при нажатии этой кнопки отображался другой экран, можно задать в качестве значения свойства OnSelect для кнопки формулу с функцией Navigate. Чтобы управлять переключениями одного экрана на другой, в этой формуле можно указать визуальный переход, например Fade.

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

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

Используйте свойство StartScreen объекта Приложение для управления первым отображаемым экраном.

Любую из этих функций можно использовать только в формуле управления поведением.

Применимо к: приложениям на основе холста приложениям на основе модели

Для первого аргумента укажите имя отображаемого экрана.

Для второго аргумента укажите способ изменения старого экрана на новый.

Аргумент перехода Описание Демонстрация
ScreenTransition.Cover Новый экран появляется, перемещаясь справа налево, чтобы закрыть текущий экран. анимация перехода экрана с закрытием.
ScreenTransition.CoverRight Новый экран появляется, перемещаясь слева направо, чтобы закрыть текущий экран. анимация перехода экрана с закрытием направо.
ScreenTransition.Fade Текущий экран плавно исчезает, открывая новый экран. анимация перехода экрана с плавным исчезновением.
ScreenTransition.None (по умолчанию) Новый экран быстро заменяет текущий экран. переход экрана без анимации.
ScreenTransition.UnCover Текущий экран исчезает, перемещаясь справа налево и открывая новый экран. анимация перехода экрана с открытием.
ScreenTransition.UnCoverRight Текущий экран исчезает, перемещаясь слева направо и открывая новый экран. анимация перехода экрана с открытием направо.

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

Для старого экрана задайте свойство OnHidden, для нового — OnVisible или задайте оба свойства, чтобы внести дополнительные изменения в процедуру перехода. При этом будет обновлено свойство App.ActiveScreen.

Функция Navigate обычно возвращает значение true, но если обнаружена ошибка, возвращается значение false.

Переменные контекста для навигации описаны в статье о перемещении между экранами.

BACK

Применимо к: приложениям на основе холста

Функция Back возвращает на экран, который был показан последним.

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

Когда запускается функция Back, обратный переход используется по умолчанию. Например, если экран появился через переход CoverRight, функция Back использует эффект UnCover (который влево), чтобы вернуться. Fade и None являются обратными сами для себя. Передайте необязательный аргумент в функцию Back, чтобы использовать конкретный переход.

Функция Back обычно возвращает значение true, но возвращает значение false, если пользователь не переходил на другой экран с момента запуска приложения.

Синтаксис

Back( [ Transition ] )

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

Navigate( Screen [, Transition [, UpdateContextRecord ] ] )

  • Screen — обязательный аргумент. Отображаемый экран. Вместо Экрана вы также можете использовать элемент управления, расположенный на экране, к которому вы хотите перейти.
  • Transition — необязательный аргумент. Визуальный переход, используемый при переходе между текущим экраном и следующим. Допустимые значения для этого аргумента см. ранее в этой статье. Значение по умолчанию — None.
  • UpdateContextRecord — необязательный аргумент. Запись, содержащая имя как минимум одного столбца и значение каждого из них. Эта запись обновляет переменные контекста нового экрана таким же образом, как при передаче их функции UpdateContext.

Примеры

Формула Описание Результат
Navigate( Details ) Отображается экран Details без эффекта перехода или изменения значения переменной контекста. Экран Details отображается быстро.
Navigate( Details, ScreenTransition.Fade ) Отображается экран Details с переходом типа Fade. Значение переменной контекста не меняется. Текущий экран исчезает, и отображается экран Details.
Navigate( Details, ScreenTransition.Fade, { ID: 12 } ) Отображается экран Details с переходом типа Fade, и значение переменной контекста ID меняется на 12. Текущий экран исчезает, и отображается экран Details, а для переменной контекста ID задается значение 12.
Navigate( Details, ScreenTransition.Fade, { ID: 12 , Shade: Color.Red } ) Отображается экран Details с переходом типа Fade. Значение переменной контекста ID изменяется на 12, а значение переменной контекста Shade — на Color.Red. Текущий экран исчезает, и отображается экран Details. Для переменной контекста ID на экране Details задается значение 12, а для переменной контекста Shade — значение Color.Red. Если на экране Details задать для свойства Fill элемента управления значение Shade, этот элемент управления будет отображаться красным цветом.
Back() Отображение предыдущего экрана с обратным переходом по умолчанию. Отображается предыдущий экран с использованием перехода, обратного переходу, с использованием которого появился текущий экран.
Back( ScreenTransition.Cover ) Отображение предыдущего экрана с переходом Cover. Отображается предыдущий экран с использованием перехода Cover, независимого от перехода, с использованием которого появился текущий экран.

Пошаговое руководство

  1. Создайте пустое приложение.

  2. Добавьте второй экран к нему.

    Приложение содержит два пустых экрана: Screen1 и Screen2.

  3. Задайте для свойства Fill экрана Screen2 значение Gray.

  4. На экране Screen2 добавьте кнопку и задайте для ее свойства OnSelect следующую формулу:

    Navigate( Screen1, ScreenTransition.Cover )
    
  5. Удерживая нажатой клавишу ALT, выберите эту кнопку.

    Screen1 появляется с белым фоном через переход, который закрывает влево.

  6. На экране Screen1 добавьте кнопку и задайте для ее свойства OnSelect следующую формулу:

    Back()
    
  7. Удерживая нажатой клавишу ALT, выберите эту кнопку.

    Второй экран появляется с серым фоном через переход, который открывает вправо (обратная операция для Cover).

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

См. также

Использование переменных контекста