次の方法で共有


Back および Navigate 関数

表示される画面を変更します。

概要

ほとんどのアプリには、複数の画面が含まれます。 Back および Navigate 関数を使用して、表示する画面を変更します。 たとえば、ユーザーがボタンを選択したときに別の画面を表示する場合は、Navigate 関数が含まれた数式に、ボタンの OnSelect プロパティを設定します。 その数式では、画面の切り替わり方コントロールするのに、Fade などのビジュアルの切り替えを指定することができます。

「戻る」 と「移動」 では、表示される画面のみが変更されます。 現在表示されていない画面は、バックグラウンドで引き続き動作します。 他の画面上のコントロールのプロパティを参照する数式を作成できます。 たとえば、いずれかの画面上のスライダーの値を変更した後、数式内でその値を使用する別の画面に移動し、新しい画面にどのように影響するかを決定することができます。 ユーザーは元の画面に戻り、スライダーの値が保持されていることを確認できます。

コンテキスト変数 は、ユーザーが画面間を移動するときにも保持されます。 Navigate を使用して、数式で表示される画面に 1 つ以上のコンテキスト変数を設定できます。これは、画面外からコンテキスト変数を設定する唯一の方法です。 画面にパラメーターを渡すのに、この方法を使用できます。 別のプログラミング ツールを使用した場合、この方法はプロシージャにパラメーターを渡すのに似ています。

アプリオブジェクトの StartScreenプロパティを使用して、最初に表示される画面を制御します。

いずれかの関数は、動作の数式内でのみ使用できます。

適用対象: キャンバス アプリ モデル駆動型アプリ

最初の引数で、表示する画面の名前を指定します。

2 番目の引数で、前の画面がどのように新しい画面に変化するかを指定します:

切り替えの引数 内容 デモ
スクリーン遷移.カバー 新しい画面は、現在の画面を覆うためにスライドしてビューに表示され、右から左に移動します。 画面の切り替えでアニメーションを覆います。
スクリーン遷移.カバー右 新しい画面は、現在の画面を覆うためにスライドしてビューに表示され、左から右に移動します。 画面切り替えで右のアニメーションを覆います。
スクリーン遷移.フェード 現在画面がフェードアウトし、新しい画面が表示されます。 画面切り替えでアニメーションからフェードします。
ScreenTransition.None (デフォルト) 新しい画面は現在の画面をすばやく置き換えます。 画面切り替えでアニメーションを表示しません。
スクリーントランジション.UnCover 現在の画面が右から左にスライドして表示されなくなり、新しい画面が表示されます。 画面切り替えでアニメーションを表示します。
スクリーン遷移.UnCoverRight 現在の画面が左から右にスライドして表示されなくなり、新しい画面が表示されます。 画面切り替えで右のアニメーションを表示します。

Navigate を使用して、新しい画面のコンテキスト 変数 を作成または更新できます。 省略可能な 3 番目の引数として、 名としてのコンテキスト変数の名前とコンテキスト変数の新しい値を含むレコード を渡します。 このレコードは、UpdateContext 関数で使用するレコードと同じです。

前の画面のOnHidden プロパティ、新しい画面のOnVisible プロパティ、あるいはその両方を設定して、切り替え時の追加を変更します。 App.ActiveScreen プロパティが更新され、変更が反映されます。

Navigate は通常 true を返しますが、エラーが発生した場合は false を返します。

ナビゲーション用の Context 変数は、画面間を移動する 記事で説明されています。

Back

適用対象: キャンバス アプリ

Back 関数は、最後に表示された画面に戻ります。

Navigate の呼び出しは、アプリは表示された画面と切り替えを追跡します。 連続する Back を呼び出して、ユーザーがアプリを開始したときに表示された画面にすべての方法を返すことができます。

Back 関数が実行されると、既定では逆遷移が使用されます。 たとえば、画面が CoverRight 遷移を返して表示される場合、Back は戻るのに UnCover (左にある) を使用します。 FadeNone は、それぞれ逆になります。 特定の遷移を強制するのに、オプションの引数を Back に渡します。

Back は通常 true を返しますが、ユーザーがアプリの起動後に別の画面に移動していない場合は false を返します。

構文

戻る( [ 遷移 ] )

  • トランジション - オプション。 現在の画面と前の画面の間で使うビジュアルの切り替えです。 この記事で既に説明した、この引数の有効な値の一覧を参照してください。 既定では、画面が戻る切り替えは、表示された切り替えの逆になります。

ナビゲート( 画面 [, 遷移 [, UpdateContextRecord ] ] )

  • スクリーン - 必須。 表示する画面。 画面 の代わりに、移動先の画面上にあるコントロールを使用することもできます。
  • トランジション - オプション。 現在の画面と次の画面の間で使うビジュアルの切り替えです。 この記事で既に説明した、この引数の有効な値の一覧を参照してください。 既定値は None です。
  • UpdateContextRecord - オプション。 1 つ以上の列の名前と、各列に対する値を含んだレコードです。 このレコードは、UpdateContext 関数に渡されたときのように、新しい画面のコンテキスト変数 を更新します。

計算式 内容 結果
ナビゲート(詳細) 切り替えやコンテキスト変数の値の変更なしで 詳細 画面を表示します。 詳細 画面がすぐに表示されます。
ナビゲート(詳細、ScreenTransition.Fade) フェード の切り替えを使って 詳細 画面を表示します。 コンテキスト変数の値は変更されません。 現在の画面がフェード アウトして、詳細 画面が表示されます。
ナビゲート(詳細、ScreenTransition.Fade、 { ID: 12 } ) フェード の切り替えを使って 詳細 画面を表示します。また、ID コンテキスト変数の値を 12 に更新します。 Details 画面を表示するのに現在の画面がフェード アウトし、画面上のコンテキスト変数 ID12 に設定されます。
ナビゲート(詳細、ScreenTransition.Fade、 { ID: 12、Shade: Color.Red } ) フェード の切り替えを使って 詳細 画面を表示します。 コンテキスト変数 ID の値を 12 に更新し、コンテキスト変数 Shade の値を Color.Red に更新します。 現在の画面がフェード アウトして、詳細 画面が表示されます。 Details 画面上のコンテキスト変数 ID12 に設定され、コンテキスト変数 ShadeColor.Red に設定されます。 Details 画面上のコントロールの Fill プロパティを Shade に設定した場合、そのコントロールは赤色で表示されます。
戻る() 既定の戻り値の切り替えを使用して、前の画面を表示します。 現在の画面が表示された切り替え効果の逆の切り替えを、前の通して画面を表示します。
戻る( ScreenTransition.Cover ) Cover 切り替えを使用して、前の画面を表示します。 現在の画面が表示された切り替え効果に関係なく、前の画面を Cover 切り替えによって表示します。

ステップ バイ ステップ

  1. 空白のアプリを作成します。

  2. 2 番目の画面を追加します。

    アプリには 2 つの空白の画面が含まれています: Screen1 および Screen2

  3. Screen2Fill プロパティを Gray 値に設定します。

  4. Screen2 でボタンを追加し、OnSelect プロパティを次の数式に設定します:

    Navigate( Screen1, ScreenTransition.Cover )
    
  5. Alt キーを押しながら、ボタンを選択します。

    Screen1 は、左側を覆うトランジションを通じて白い背景で表示されます。

  6. Screen1 で、ボタンを追加し、OnSelect プロパティを次の数式に設定します:

    Back()
    
  7. Alt キーを押しながら、ボタンを選択します。

    2番目の画面は、右側に表示されている切り替え (Cover の逆) を通して、背景を灰色で表示します。

  8. 各画面のボタンを繰り返し選択して、前後にバウンスします。

関連情報

コンテキスト変数の使用