Funções Back e Navigate

Altera o ecrã apresentado.

Descrição geral

A maioria das aplicações contém vários ecrãs. Utilize a função Back e Navigate para alterar o ecrã apresentado. Por exemplo, defina a propriedade OnSelect de um botão para uma fórmula que inclua uma função Navigate se quiser mostrar um ecrã diferente quando um utilizador seleciona esse botão. Nessa fórmula, pode especificar uma transição visual, por exemplo, Fade, para controlar a forma como um ecrã muda para outro.

As funções Back e Navigate só alteram o ecrã apresentado. Os ecrãs que não sejam apresentados continuam a funcionar em segundo plano. Pode criar fórmulas que se referem às propriedades de controlos noutros ecrãs. Por exemplo, um utilizador pode alterar o valor de um controlo de deslize num ecrã, navegar para um ecrã diferente que utiliza esse valor numa fórmula e determinar como afeta o que acontece no novo ecrã. O utilizador pode, em seguida, navegar para o ecrã original e confirmar que o controlo de deslize manteve o respetivo valor.

As variáveis de contexto também são mantidas quando um utilizador navega entre ecrãs. Pode utilizar a função Navigate para definir uma ou mais variáveis de contexto do ecrã que mostra a fórmula, que é a única forma de definir uma variável de contexto a partir do exterior do ecrã. Pode utilizar esta abordagem para passar parâmetros para um ecrã. Se utilizou outra ferramenta de programação, esta abordagem é semelhante à transmissão de parâmetros para procedimentos.

Utilize a propriedade objetos da AplicaçãoStartScreen para controlar o primeiro ecrã a ser exibido.

Pode utilizar qualquer uma das funções apenas dentro uma fórmula de comportamento.

Aplica-se a: Aplicações de tela Aplicações condicionadas por modelo

No primeiro argumento, especifique o nome do ecrã a apresentar.

No segundo argumento, especifique como o ecrã antigo muda para o novo ecrã:

Argumento de transição Descrição Demonstração
ScreenTransition.Cover O novo ecrã desliza para entrar na vista, movendo-se da direita para a esquerda, para cobrir o ecrã atual. animação da cobertura de transição de ecrã.
ScreenTransition.CoverRight O novo ecrã desliza para entrar na vista, movendo-se da esquerda para a direita, para cobrir o ecrã atual. animação da cobertura direita de transição de ecrã.
ScreenTransition.Fade O ecrã atual desvanece e aparece o novo ecrã. animação do desvanecimento de transição de ecrã.
ScreenTransition.None (Predefinição) O novo ecrã substitui rapidamente o ecrã atual. animação de nenhuma transição de ecrã.
ScreenTransition.UnCover O ecrã atual desliza para fora da vista, movendo-se da direita para a esquerda, para revelar o novo ecrã. animação da revelação de transição de ecrã.
ScreenTransition.UnCoverRight O ecrã atual desliza para fora da vista, movendo-se da esquerda para a direita, para revelar o novo ecrã. animação da revelação direita de transição de ecrã.

Pode utilizar Navigate para criar ou atualizar as variáveis de contexto do novo ecrã. Como terceiro argumento opcional, transmita um registo que contenha o nome de variável de contexto, como um nome de coluna e o novo valor para a variável de contexto. Este registo é o mesmo que o registo que utiliza com a função UpdateContext.

Defina a propriedade OnHidden do ecrã antigo, a propriedade OnVisible do novo ecrã, ou ambas para fazer alterações adicionais durante a transição. A propriedade App.ActiveScreen será atualizada para refletir a alteração.

Normalmente, Navigate devolve true, mas devolverá false se for encontrado um erro.

As variáveis de contexto para navegação são explicadas no artigo navegar entre ecrãs.

Back

Aplica-se a: Aplicações de tela

A função Back devolve o ecrã apresentado mais recentemente.

Para cada chamada Navigate, a aplicação monitoriza o ecrã que apareceu e a transição. Pode utilizar chamadas Back sucessivas para voltar totalmente para o ecrã que apareceu quando o utilizador iniciou a aplicação.

Quando a função Back é executada, é utilização a transição inversa por predefinição. Por exemplo, se aparecer um ecrã através da transição CoverRight, Back utiliza UnCover (que está à esquerda) para voltar. Fade e None são os seus próprios inversos. Transmita um argumento opcional para Back para forçar uma transição específica.

Normalmente, Back devolve true, mas devolve false se o utilizador não tiver navegado para outro ecrã desde o início da aplicação.

Sintaxe

Back( [ Transition ] )

  • Transition – Opcional. A transição visual a utilizar entre o ecrã atual e o ecrã anterior. Consulte a lista de valores válidos para este argumento no início deste artigo. Por predefinição, a transição através da qual regressa a um ecrã é a inversa da transição através da qual apareceu.

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

  • Screen – Obrigatório. O ecrã a apresentar. Em vez de Ecrã, também pode utilizar um controlo que se coloca no ecrã para onde pretende navegar.
  • Transition – Opcional. A transição visual a utilizar entre o ecrã atual e o ecrã seguinte. Consulte a lista de valores válidos para este argumento no início deste artigo. O valor predefinido é None.
  • UpdateContextRecord – Opcional. Um registo que contém o nome de pelo menos uma coluna e um valor para cada coluna. Este registo atualiza as variáveis de contexto do novo ecrã, como se tivessem sido transmitidas para a função UpdateContext.

Exemplos

Fórmula Descrição Resultado
Navigate( Details ) Apresenta o ecrã Detalhes sem transições ou alterações no valor de uma variável de contexto. O ecrã Detalhes aparece rapidamente.
Navigate( Details, ScreenTransition.Fade ) Apresenta o ecrã Detalhes com uma transição Desvanecimento. Nenhum valor de uma variável de contexto é alterado. O ecrã atual desaparece e é apresentado o ecrã Detalhes.
Navigate( Details, ScreenTransition.Fade, { ID: 12 } ) Apresenta o ecrã Detalhes com uma transição Desvanecimento e atualiza o valor da variável de contexto de ID para 12. O atual ecrã desaparece e é apresentado o ecrã Detalhes e a variável de contexto ID nesse ecrã é definida para 12.
Navigate( Details, ScreenTransition.Fade, { ID: 12 , Shade: Color.Red } ) Apresenta o ecrã Detalhes com uma transição Desvanecimento. Atualiza o valor da variável de contexto ID para 12 e atualiza o valor da variável de contexto Tom para Color.Red. O ecrã atual desaparece e é apresentado o ecrã Detalhes. A variável de contexto ID no ecrã Detalhes está definida para 12 e a variável de contexto Tom está definida para Color.Red. Se definir a propriedade Fill de um controlo no ecrã Detalhes para Tom, esse o controlo é apresentado a vermelho.
Back() Apresenta o ecrã anterior com a transição de devolução predefinida. Apresenta o ecrã anterior através da transição inversa da transição através da qual o ecrã atual apareceu.
Back( ScreenTransition.Cover ) Apresenta o ecrã anterior com a transição Cover. Apresenta o ecrã anterior através da transição Cover, independentemente da transição através da qual o ecrã atual apareceu.

Passo a passo

  1. Crie uma aplicação em branco.

  2. Adicione-lhe um segundo ecrã.

    A aplicação contém dois ecrãs em branco: Screen1 e Screen2.

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

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

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

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

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

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

    O segundo ecrã é apresentado com um fundo cinzento através de uma transição que revela à direita (a inversa de Cover).

  8. Selecione o botão em cada tela repetidamente para avançar e recuar.

Consulte também

Utilizar variáveis de contexto