Функції «Назад» і «Навігація»

Зміна відображуваного екрана.

Зведення

Більшість програм містять кілька екранів. За допомогою функцій Back і Navigate можна змінювати відображуваний екран. Наприклад, можна настроїти властивість OnSelect елемента керування «Кнопка» згідно з формулою, що включає функцію Navigate, якщо потрібно відображати інший екран у разі натискання користувачем цієї кнопки. У цій формулі можна вказати візуальний перехід, як-от Fade (Згасання), для визначення способу зміни одного екрана на інший.

За допомогою функцій Back і Navigate можна змінити тільки відображуваний екран. Неактивні екрани продовжують працювати у фоновому режимі. Можна створювати формули, що посилаються на властивості елементів керування на інших екранах. Наприклад, користувач може змінити значення повзунка на одному екрані, перейти на інший екран, що використовує це значення у формулі, і визначити, як це впливає на те, що відбувається на новому екрані. Після цього користувач може повернутися до вихідного екрана і переконатися, що значення повзунка збереглося.

Під час переходу користувача від одного екрана до іншого також зберігаються змінні контексту. За допомогою функції Navigate можна настроїти для екрана, який відображатиметься, одну або кілька змінних контексту, що становить єдиний спосіб настройки змінної контексту поза екраном. Цей підхід можна застосувати для передачі параметрів до екрана. Якщо використовувався інший засіб програмування, цей підхід можна порівняти з передаванням параметрів до процедур.

Скористайтеся властивістю StartScreen об'єкта програми, щоб керувати першим екраном, який відображатиметься.

Ці функції можна використовувати лише у формулах поведінки.

Застосовується до: програм Canvas Програм на основі моделі

У першому аргументі вкажіть ім’я екрана для відображення.

У другому аргументі вкажіть спосіб зміни старого екрана на новий.

Аргумент переходу Опис Демонстрація
ScreenTransition.Cover Новий екран з’являється в поданні, рухаючись справа наліво до повного перекриття поточного екрана. анімація переходу між екранами «Перекриття».
ScreenTransition.CoverRight Новий екран з’являється в поданні, рухаючись зліва направо до повного перекриття поточного екрана. анімація переходу між екранами «Перекриття справа».
ScreenTransition.Fade Поточний екран поступово зникає, відкриваючи новий екран. анімація переходу між екранами «Згасання».
ScreenTransition.None (за замовчуванням) Новий екран швидко замінює поточний екран. анімація переходу між екранами «Немає».
ScreenTransition.UnCover Поточний екран зникає з подання, рухаючись справа наліво до повного відкриття нового екрана. анімація переходу між екранами «Відкривання».
ScreenTransition.UnCoverRight Поточний екран зникає з подання, рухаючись зліва направо до повного відкриття нового екрана. анімація переходу між екранами «Відкривання справа».

За допомогою функції Navigate можна створити або оновити змінні контексту нового екрана. Як необов’язковий третій аргумент, передайте запис, що містить ім’я змінної контексту як ім’я стовпця, а також нове значення змінної контексту. Цей запис відповідає запису, що використовується у функції UpdateContext.

Настройте властивість OnHidden старого екрана, властивість OnVisible нового екрана або і ту і іншу властивості для внесення додаткових змін під час переходу. Властивість App.ActiveScreen оновиться для відображення змін.

Функція Navigate зазвичай повертає значення true, проте вона поверне значення false у разі виникнення помилки.

Роз’яснення щодо змінних контексту для переходів наведено в розділі про переходи між екранами.

Повернутися

Застосовується до: програм Canvas

Функція 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. Якщо для властивості Fill елемента керування на екрані Details установити значення Shade, цей елемент керування відображатиметься червоним кольором.
Back() Відображає попередній екран із переходом повернення за замовчуванням. Відображає попередній екран, використовуючи перехід, зворотний до переходу, що використовувався для відображення поточного екрана.
Back( ScreenTransition.Cover ) Відображає попередній екран із переходом Cover. Відображає попередній екран, використовуючи перехід Cover, незалежно від переходу, що використовувався для відображення поточного екрана.

Покрокові інструкції

  1. Створіть пусту програму.

  2. Додайте до неї другий екран.

    Тепер програма містить два екрани: Screen1 (Екран1) і Screen2 (Екран2).

  3. Установіть для властивості Fill екрана Screen2 значення Gray.

  4. На екрані Screen2 додайте елемент керування «Кнопка» та настройте його властивість OnSelect відповідно до нижчезазначеної формули.

    Navigate( Screen1, ScreenTransition.Cover )
    
  5. Натисніть кнопку, утримуючи клавішу Alt.

    Відобразиться Screen1 із білим фоном через перехід, що передбачає перекриття справа наліво.

  6. На екрані Screen1 додайте елемент керування «Кнопка» та настройте його властивість OnSelect відповідно до наведеної нижче формули.

    Back()
    
  7. Натисніть кнопку, утримуючи клавішу Alt.

    Відобразиться другий екран із сірим фоном через перехід, що відкриває екран зліва направо (перехід, зворотний до Cover).

  8. Натисніть кнопку на кожному екрані кілька разів для переходу назад і вперед.

Див. також

Використання змінних контексту