Share via


Funcións Atrás e Navegación

Cambia a pantalla que se amosa.

Visión xeral

A maioría das aplicacións conteñen varias pantallas. Use as funcións Back e Navigate para cambiar a pantalla que aparece. Por exemplo, estableza a propiedade OnSelect dun botón nunha fórmula que inclúa a función Navigate se desexa mostrar unha pantalla diferente cando un usuario selecciona ese botón. Nesa fórmula, pode especificar unha transición visual, como por exemplo Atenuar, para controlar como unha pantalla cambia a outra.

As funcións Back e Navigate só cambian a pantalla que aparece. As pantallas que actualmente non se amosan continúan funcionando en segundo plano. Pode crear fórmulas que se refiran ás propiedades dos controis noutras pantallas. Por exemplo, un usuario pode cambiar o valor dun control deslizante nunha pantalla, navegar a unha pantalla diferente que usa ese valor nunha fórmula e determinar como afecta o que sucede na nova pantalla. O usuario pode navegar de novo á pantalla orixinal e confirmar que o control deslizante mantivo o seu valor.

As variables de contexto tamén se conservan cando un usuario navega entre pantallas. Pode usar Navigate para establecer unha ou varias variables de contexto para a pantalla que amosará a fórmula, que é o único xeito de definir unha variable de contexto desde fóra da pantalla. Pode usar este enfoque para pasar parámetros a unha pantalla. Se empregou outra ferramenta de programación, este enfoque é similar ao de pasar parámetros a procedementos.

Use a propiedade StartScreen do obxecto da aplicación para controlar a primeira pantalla que se mostrará.

Só pode usar estas funcións dentro dunha fórmula de comportamento.

Aplícase a: Aplicacións de lenzo Aplicacións baseadas en modelos

No primeiro argumento, especifique o nome da pantalla que se mostrará.

No segundo argumento, especifique como cambia a pantalla antiga á nova pantalla:

Argumento de transición Descripción Demostración
ScreenTransition.Cover A nova pantalla deslízase á vista, desprazándose de dereita a esquerda para cubrir a pantalla actual. Transición de pantalla con animación de portada.
ScreenTransition.CoverRight A nova pantalla deslízase na vista, desprazándose de esquerda a dereita para cubrir a pantalla actual. Transición de pantalla con animación de portada pola dereita.
ScreenTransition.Fade A pantalla actual atenúase para revelar a nova pantalla. Transición de pantalla con animación atenuadora.
ScreenTransition.None (Predeterminado) A nova pantalla substitúe rapidamente a pantalla actual. Transición de pantalla sen animación.
ScreenTransition.UnCover A pantalla actual deslízase fóra da vista, desprazándose de dereita a esquerda, para descubrir a pantalla nova. Transición de pantalla con animación descobertora.
ScreenTransition.UnCoverRight A pantalla actual deslízase fóra da vista, desprazándose de esquerda a dereita, para descubrir a pantalla nova. Transición de pantalla con animación descobertora pola dereita.

Pode usar Navigate para crear ou actualizar variables de contexto da nova pantalla. Como terceiro argumento opcional, pase un rexistro que conteña o nome da variable contextual como nome dunha columna e o novo valor para a variable de contexto. Este rexistro é o mesmo que o que usa coa función UpdateContext.

Estableza a propiedade OnHidden da pantalla antiga, a propiedade OnVisible da nova pantalla ou ambas para facer cambios adicionais durante a transición. A propiedade App.ActiveScreen actualizarase para reflectir o cambio.

Navigate normalmente devolve true, pero devolverá false se se atopa un erro.

As variables de contexto para a navegación explícanse no artigo navegar entre pantallas.

Anterior

Aplícase a: aplicacións Canvas

A función Back volve á pantalla que se amosou máis recentemente.

Para cada chamada a Navigate, a aplicación rastrexa a pantalla que apareceu e a transición. Pode usar sucesivas chamadas a Back para volver até a pantalla que apareceu cando o usuario iniciou a aplicación.

Cando a función Back se executa, a transición inversa úsase por defecto. Por exemplo, se apareceu unha pantalla a través da transición CoverRight, Back usa UnCover (que está á esquerda) para volver. Fade e None son inversos propios. Pase un argumento opcional a Back para forzar unha transición específica.

Back normalmente devolve true, pero devolverá false se o usuario non navegou a outra pantalla desde o inicio da aplicación.

Sintaxe

Back( [ Transition ] )

  • Transition: Opcional. A transición visual que se vai usar entre a pantalla actual e a anterior. Consulte a lista de valores válidos para este argumento anteriormente neste artigo. De xeito predeterminado, a transición pola que regresa unha pantalla é a inversa da transición pola que apareceu.

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

  • Screen: Obrigatorio. O pantalla para mostrar. En lugar de Pantalla, tamén podes usar un control que se atopa na pantalla á que desexas navegar.
  • Transition: Opcional. A transición visual que se vai usar entre a pantalla actual e a seguinte. Consulte a lista de valores válidos para este argumento anteriormente neste artigo. O valor predefinido é None.
  • UpdateContextRecord: Opcional. Un rexistro que contén o nome de polo menos unha columna e un valor para cada columna. Este rexistro actualiza as variables de contexto da nova pantalla como se pasasen á función UpdateContext.

Exemplos

Fórmula Descripción Resultado
Navigate( Details ) Mostra a pantalla Detalles sen transición ou cambio de valor para unha variable de contexto. A pantalla Detalles aparece rapidamente.
Navigate( Details, ScreenTransition.Fade ) Mostra a pantalla Detalles cunha transición de atenuación. Non se cambia ningún valor dunha variable de contexto. A pantalla actual atenúase para mostrar a pantalla Detalles.
Navigate( Details, ScreenTransition.Fade, { ID: 12 } ) Mostra a pantalla Detalles cunha transición de atenuación e actualiza o valor da variable de contexto ID a 12. A pantalla actual desaparece para amosar a pantalla Detalles e a variable de contexto ID nesa pantalla está axustada en 12.
Navigate( Details, ScreenTransition.Fade, { ID: 12 , Shade: Color.Red } ) Mostra a pantalla Detalles cunha transición de atenuación. Actualiza o valor da variable de contexto ID a 12 e actualiza o valor da variable de contexto Sombra a Cor.Vermella. A pantalla actual atenúase para mostrar a pantalla Detalles. A variable de contexto IDda pantalla Detalles está definida en 12 e a variable de contexto Sombra está configurada en Cor.Vermella. Se establece a propiedade Encher dun control na pantalla Detalles para a Sombra, ese control amosaríase vermello.
Back() Mostra a pantalla anterior coa transición de retorno predeterminada. Mostra a pantalla anterior a través da transición inversa da transición pola que a pantalla actual apareceu.
Back( ScreenTransition.Cover ) Mostra a pantalla anterior coa transición Cubrir. Mostra a pantalla anterior a través da transición Cubrir, independentemente da transición pola que a pantalla actual apareceu.

Paso a paso

  1. Cree unha aplicación en branco.

  2. Engádalle unha segunda pantalla.

    A aplicación contén dúas pantallas en branco: Screen1 e Screen2.

  3. Estableza a propiedade Encher de Screen2 no valor Gray.

  4. En Screen2, engada un segundo botón e axuste a súa propiedade OnSelect nesta fórmula:

    Navigate( Screen1, ScreenTransition.Cover )
    
  5. Seleccione o botón mantendo premida a tecla Alt.

    Screen1 aparece cun fondo branco a través dunha transición que cobre cara a esquerda.

  6. En Screen1, engada un segundo botón e axuste a súa propiedade OnSelect nesta fórmula:

    Back()
    
  7. Seleccione o botón mantendo premida a tecla Alt.

    A segunda pantalla aparece cun fondo gris a través dunha transición que se descobre cara a dereita (aá inversa de Cubrir).

  8. Seleccione o botón de cada pantalla repetidamente para ir cara atrás e cara adiante.

Consulte tamén

Usar variables de contexto