Funções Back e Navigate

Altera qual tela é exibida.

Visão geral

A maioria dos aplicativos contêm várias telas. Use a função Back e Navigate para alterar qual tela será exibida. Por exemplo, defina a propriedade OnSelect de um botão como uma fórmula que inclui uma função Navigate se desejar mostrar uma tela diferente quando um usuário seleciona esse botão. Nessa fórmula, você pode especificar uma transição visual, como Esmaecer para controlar como uma tela muda para outra.

Back e Navigate alteram apenas qual tela será exibida. As telas não exibidas no momento continuam em operação por trás dos bastidores. Você pode criar fórmulas que fazem referência às propriedades de controles em outras telas. Por exemplo, um usuário pode alterar o valor de um controle deslizante em uma única tela, navegar até uma tela diferente que usa esse valor em uma fórmula e determinar como isso afeta o que acontece na nova tela. O usuário pode navegar de volta para a tela original e confirmar se o controle deslizante manteve seu valor.

Variáveis de contexto também são preservadas quando um usuário navega entre telas. Você pode usar Navigate para definir uma ou mais variáveis de contexto para a tela que a fórmula exibirá, que é a única maneira de definir uma variável de contexto de fora da tela. Você pode usar essa abordagem para passar parâmetros para uma tela. Se você já usou outra ferramenta de programação, essa abordagem é semelhante a passar parâmetros para procedimentos.

Use a propriedade StartScreen do objeto Aplicativo para controlar a primeira tela a ser exibida.

Você pode usar essas funções somente em uma fórmula de comportamento.

Aplica-se a: Aplicativos de tela Aplicativos baseados em modelo

No primeiro argumento, especifique o nome da tela a ser exibida.

No segundo argumento, especifique como a tela antiga muda para a nova tela:

Argumento de transição Descrição Demonstração
ScreenTransition.Cover A nova tela é exibida, movendo-se da direita para a esquerda, para cobrir a tela atual. animação de capa da transição de tela.
ScreenTransition.CoverRight A nova tela é exibida, movendo-se da esquerda para a direita, para cobrir a tela atual. animação de capa à direita da transição de tela.
ScreenTransition.Fade A tela atual desaparece para revelar a nova tela. animação de esmaecimento da transição de tela.
ScreenTransition.None (Default) A nova tela substitui rapidamente a tela atual. animação de nenhuma transição de tela.
ScreenTransition.UnCover A tela atual desliza para fora da visualização, movendo-se da direita para a esquerda, para descobrir a nova tela. animação de descoberta da transição de tela.
ScreenTransition.UnCoverRight A tela atual desliza para fora da visualização, movendo-se da esquerda para a direita, para descobrir a nova tela. animação de descoberta à direita da transição de tela.

Você pode usar Navigate para criar ou atualizar variáveis de contexto da nova tela. Como um terceiro argumento opcional, passe um registro que contém o nome de variável de contexto como um nome de coluna e o novo valor para a variável de contexto. Esse registro é o mesmo que o registro que você usa com a função UpdateContext.

Defina a propriedade OnHidden da tela anterior, a propriedade OnVisible da nova tela ou ambas para fazer alterações adicionais durante a transição. A propriedade App.ActiveScreen será atualizada para refletir a alteração.

Navigate normalmente retorna true mas retornará false se um erro for encontrado.

Variáveis de contexto para navegação são explicadas no artigo navegar entre telas.

Backspace

Aplica-se a: Aplicativos de tela

A função Back exibe retorna para a tela exibida mais recentemente.

Para cada chamada Navigate, o aplicativo rastreia a tela que apareceu e a transição. Você pode usar chamadas Voltar sucessivas para retornar até a tela que apareceu quando o usuário iniciou o aplicativo.

Quando a função Back é executada, a transição inversa é usada por padrão. Por exemplo, se uma tela aparecer através da transição CoverRight, Voltar usa Descobrir (que fica à esquerda) para retornar. Esmaecer e Nenhum são os seus próprios inversos. Passe um argumento opcional para Voltar para forçar uma transição específica.

Voltar normalmente retorna true, mas retorna false se o usuário não tiver navegado para outra tela desde o início do aplicativo.

Sintaxe

Back( [ Transition ] )

  • Transição - opcional. A transição visual a ser usada entre a tela atual e a tela anterior. Consulte a lista de valores válidos para esse argumento anteriormente neste artigo. Por padrão, a transição pela qual uma tela retorna é o inverso da transição pela qual ela apareceu.

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

  • Screen - obrigatório. A tela a ser exibida. No lugar de Tela, você também pode usar um controle que esteja na tela para a qual você deseja navegar.
  • Transição - opcional. A transição visual a ser usada entre a tela atual e a próxima tela. Consulte a lista de valores válidos para esse argumento anteriormente neste artigo. O valor padrão é None.
  • UpdateContextRecord - opcional. Um registro que contém o nome de, pelo menos, uma coluna e um valor para cada coluna. Esse registro atualiza as variáveis de contexto da nova tela como se passadas para a função UpdateContext.

Exemplos

Fórmula Descrição Resultado
Navigate( Details ) Exibe a tela Detalhes sem transição ou alteração no valor para uma variável de contexto. A tela Detalhes é exibida rapidamente.
Navigate( Details, ScreenTransition.Fade ) Exibe a tela Detalhes com uma transição de Esmaecimento. Nenhum valor de uma variável de contexto é alterado. A tela atual desaparece para mostrar a tela Detalhes.
Navigate( Details, ScreenTransition.Fade, { ID: 12 } ) Exibe a tela Detalhes com uma transição de Esmaecimento e atualiza o valor da variável de contexto ID para 12. A tela atual esmaece imediatamente para exibir a tela Detalhes e a ID da variável de contexto nessa tela é definida como 12.
Navigate( Details, ScreenTransition.Fade, { ID: 12 , Shade: Color.Red } ) Exibe a tela Detalhes com uma transição Esmaecer. Atualiza o valor da variável de contexto ID para 12 e atualiza o valor da variável de contexto Shade para Color.Red. A tela atual esmaece imediatamente para exibir a tela Detalhes. A ID da variável de contexto na tela Detalhes está definida como 12 e a variável de contexto Apagar está definida como Color.Red. Se você definir a propriedade Fill de um controle na tela Detalhes como Sombreamento, esse controle será exibido em vermelho.
Back() Exibe a tela anterior com a transição de retorno padrão. Exibe a tela anterior por meio da transição inversa da transição por meio da tela atual exibida.
Back( ScreenTransition.Cover ) Exibe a tela anterior com a transição a Capa. Exibe a tela anterior por meio da transição de Capa, independente da transição por meio da tela atual exibida.

Passo a passo

  1. Criar um aplicativo em branco.

  2. Adicione uma segunda tela a ele.

    O aplicativo contém duas telas em branco: Screen1 e Screen2.

  3. Defina a propriedade Fill de Screen2 para o valor Gray.

  4. Em Screen2, adicione um botão e defina sua propriedade OnSelect para esta fórmula:

    Navigate( Screen1, ScreenTransition.Cover )
    
  5. Mantendo a tecla Alt pressionada, selecione o botão.

    Screen1 aparece com um fundo branco através de uma transição que cobre a esquerda.

  6. Em Screen1, adicione um botão e defina sua propriedade OnSelect para esta fórmula:

    Back()
    
  7. Mantendo a tecla Alt pressionada, selecione o botão.

    A segunda tela aparece com um fundo cinza por meio de uma transição que se revela à direita (o inverso de Capa).

  8. Selecione o botão em cada tela repetidamente para saltar para frente e para trás.

Confira também

Usando variáveis de contexto