Funciones Back y Navigate

Cambia la pantalla que se muestra.

Introducción

La mayoría de las aplicaciones contienen varias pantallas. Use las funciones Back y Navigate para cambiar la pantalla que se muestra. Por ejemplo, establezca la propiedad OnSelect de un botón en una fórmula que incluya una función Navigate si desea mostrar una pantalla diferente cuando un usuario selecciona ese botón. En esta fórmula, puede especificar una transición visual, como Fade, para controlar cómo se cambia de una pantalla a otra.

Back y Navigate cambian solo la pantalla que se muestra. Las pantallas que no se muestran actualmente siguen funcionando en segundo plano. Puede crear fórmulas que hagan referencia a propiedades de controles en otras pantallas. Por ejemplo, un usuario puede cambiar el valor de un control deslizante en una pantalla, navegar a una pantalla diferente que use ese valor en una fórmula y determinar cómo afecta a lo que ocurre en la nueva pantalla. Luego, el usuario puede navegar a la pantalla original y confirmar que el control deslizante ha conservado su valor.

Las variables de contexto también se conservan cuando un usuario navega entre pantallas. Puede usar Navigate para establecer una o varias variables de contexto para la pantalla que mostrará la fórmula, que es la única manera de establecer una variable de contexto desde fuera de la pantalla. Este enfoque se puede usar para pasar parámetros a una pantalla. Si ha usado otra herramienta de programación, este enfoque es similar a pasar parámetros a procedimientos.

Use la propiedad StartScreen del objeto de la Aplicación para controlar la primera pantalla que se mostrará.

Solo puede utilizar cualquiera de las funciones dentro de una fórmula de comportamiento.

Se aplica a: Aplicaciones de lienzo Aplicaciones basadas en modelos

En el primer argumento, especifique el nombre de la pantalla para mostrar.

En el segundo argumento, especifique cómo se cambia la pantalla anterior a la nueva pantalla:

Argumento de transición Descripción Demostración
ScreenTransition.Cover La nueva pantalla se desliza en la vista, moviéndose de derecha a izquierda, para cubrir la pantalla actual. animación de cobertura de transición de pantalla.
ScreenTransition.CoverRight La nueva pantalla se desliza en la vista, moviéndose de izquierda a derecha, para cubrir la pantalla actual. animación de cobertura derecha de transición de pantalla.
ScreenTransition.Fade La pantalla actual desaparece para revelar la nueva pantalla. animación de desvanecimiento de transición de pantalla.
ScreenTransition.None (predeterminado) La nueva pantalla reemplaza rápidamente a la pantalla actual. animación de ninguna transición de pantalla.
ScreenTransition.UnCover La pantalla actual se desliza hasta salir de la vista, moviéndose de derecha a izquierda, para descubrir la pantalla nueva. animación de descubrimiento de transición de pantalla.
ScreenTransition.UnCoverRight La pantalla actual se desliza hasta salir de la vista, moviéndose de izquierda a derecha, para descubrir la pantalla nueva. animación de descubrimiento derecho de transición de pantalla.

Puede usar Navigate para crear o actualizar las variables de contexto de la nueva pantalla. Como tercer argumento opcional, pase un registro que contenga el nombre de la variable de contexto como un nombre de columna y el nuevo valor para la variable de contexto. Este registro es el mismo que el registro que se usa con la función UpdateContext.

Establezca la propiedad OnHidden de la pantalla anterior, la propiedad OnVisible de la nueva pantalla o ambas para realizar cambios adicionales durante la transición. La propiedad App.ActiveScreen se actualizará para reflejar el cambio.

Navigate normalmente devuelve true, pero devolverá false si se encuentra un error.

Las variables de contexto para la navegación se explican en el artículo navegar entre pantallas.

Volver

Se aplica a: Aplicaciones de lienzo

La función Back regresa a la pantalla que se visualizó más recientemente.

Para cada llamada a Navigate, la aplicación rastrea la pantalla que apareció y la transición. Puede usar sucesivas llamadas a Back para regresar completamente a la pantalla que apareció cuando el usuario inició la aplicación.

Cuando se ejecuta la función Back, se utiliza de forma predeterminada la transición inversa. Por ejemplo, si aparece una pantalla a través de transición CoverRight, Back usa UnCover (que está a la izquierda) para regresar. Fade y None son sus propios inversos. Pase un argumento opcional a Back para forzar una transición específica.

Back normalmente devuelve true, pero devuelve false si el usuario no ha navegado a otra pantalla desde que inició la aplicación.

Sintaxis

Back( [ Transition ] )

  • Transition: opcional. La transición visual usada entre la pantalla actual y la pantalla anterior. Consulte la lista de valores válidos para este argumento anteriormente en este artículo. Por defecto, la transición a través de la cual regresa una pantalla es la inversa de la transición a través de la cual apareció.

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

  • Screen: valor obligatorio. La pantalla que se va a mostrar. En lugar de Pantalla, también puede usar un control que esté en la pantalla a la que desea navegar.
  • Transition: opcional. La transición visual usada entre la pantalla actual y la pantalla siguiente. Consulte la lista de valores válidos para este argumento anteriormente en este artículo. El valor predeterminado es None.
  • UpdateContextRecord: opcional. Un registro que contiene el nombre de al menos una columna y un valor para cada columna. Este registro actualiza las variables de contexto de la pantalla nueva como si se pasaran a la función UpdateContext.

Ejemplos

Fórmula Descripción Resultado
Navigate( Details ) Muestra la pantalla Details sin transición ni cambios en el valor de una variable de contexto. La pantalla Details aparece rápidamente.
Navigate( Details, ScreenTransition.Fade ) Muestra la pantalla Details con una transición de atenuación. No se cambia ningún valor de una variable de contexto. La pantalla actual se atenúa para mostrar la pantalla Details.
Navigate( Details, ScreenTransition.Fade, { ID: 12 } ) Muestra la pantalla Details con una transición de atenuación y actualiza el valor de la variable de contexto Id. a 12. La pantalla actual se atenúa para mostrar la pantalla Details y la variable de contexto ID en esa pantalla se establece en 12.
Navigate( Details, ScreenTransition.Fade, { ID: 12 , Shade: Color.Red } ) Muestra la pantalla Details con una transición Fade. Actualiza el valor de la variable de contexto ID a 12 y actualiza el valor de la variable de contexto Shade a Color.Red. La pantalla actual se atenúa para mostrar la pantalla Details. La variable de contexto ID en la pantalla Details está establecida en 12 y la variable de contexto Shade está establecida en Color.Red. Si establece la propiedad Fill de un control de la pantalla Details en Shade, ese control se muestra en rojo.
Back() Muestra la pantalla anterior con la transición de retorno predeterminada. Muestra la pantalla anterior a través de la transición inversa de la transición a través de la cual apareció la pantalla actual.
Back( ScreenTransition.Cover ) Muestra la pantalla anterior con la transición Cover. Muestra la pantalla anterior a través de la transición Cover, sin importar la transición a través de la cual apareció la pantalla actual.

Pasos a paso

  1. Cree una aplicación en blanco.

  2. Agréguele una segunda pantalla.

    La aplicación contiene dos pantallas en blanco: Screen1 y Screen2.

  3. Establezca la propiedad Fill de Screen2 en el valor Gray.

  4. En Screen2, agregue un botón y establezca su propiedad OnSelect en esta fórmula:

    Navigate( Screen1, ScreenTransition.Cover )
    
  5. Mientras mantiene presionada la tecla Alt, seleccione el botón.

    Screen1 aparece con un fondo blanco a través de una transición que la cubre hacia la izquierda.

  6. En Screen1, agregue un botón y establezca su propiedad OnSelect en esta fórmula:

    Back()
    
  7. Mientras mantiene presionada la tecla Alt, seleccione el botón.

    La segunda pantalla aparece con un fondo gris a través de una transición que se descubre hacia la derecha (el inverso de Cover).

  8. Seleccione el botón en cada pantalla varias veces para rebotar de un lado a otro.

Consulte también

Uso de variables de contexto