Back 和 Navigate 函數

適用於: 畫布應用

變更顯示的畫面。

概觀

大部分的應用程式包含多個畫面。 使用 Back and Navigate 函數來變更顯示的畫面。 例如,如果您想要在使用者選取按鈕時顯示不同的畫面,請將按鈕的 OnSelect 屬性設定為包含 Navigate 函式的公式。 在該公式中,您可以指定視覺轉換,例如淡化,以控制一個畫面變更為另一個畫面。

Back ,並 Navigate 僅變更要顯示的畫面。 最近未顯示的畫面會繼續在幕後運作。 您可以組建參考其他畫面上的控制項屬性的公式。 例如,使用者可以變更一個畫面控制項上的滑桿值、瀏覽到公式中使用該值的另一個畫面控制項,並判定它如何影響新畫面控制項發生的動作。 然後使用者可以瀏覽回到原始的畫面控制項,並確認滑桿保留其值。

當使用者在屏幕之間導航時,上下文變數 也會保留。 您可以使用來 Navigate 為公式將顯示的畫面設定一或多個內容變數,這是從畫面外部設定內容變數的唯一方法。 您可以使用這種方法,將參數傳遞至畫面控制項。 如果您已使用另一個程式設計工具,則這個方法類似將參數傳遞到程序。

使用應用程式物件的 StartScreen 屬性來控制要顯示的第一個畫面。

您可以只在 行為公式 內使用任一函式。

在第一個引數中,指定要顯示畫面的名稱。

在第二個引數中,指定舊畫面控制項如何變更為新畫面控制項︰

轉換引數 描述 示範
ScreenTransition.Cover 的 新畫面控制項會滑入視圖,並從右向左移動,以覆蓋目前的畫面控制項。 畫面控制項轉換覆蓋動畫。
ScreenTransition.CoverRight 封面 新畫面控制項會滑入視圖,並從左向右移動,以覆蓋目前的畫面控制項。 畫面控制項轉換覆蓋右側動畫。
ScreenTransition.Fade 檔 目前的畫面控制項淡化以顯示新畫面控制項。 畫面控制項轉換淡化動畫。
ScreenTransition.None (預設) 新畫面控制項會快速取代目前的畫面控制項。 畫面控制項轉換無動畫。
ScreenTransition.UnCover 的 目前畫面控制項會滑出視圖,並從右向左移動,揭開新畫面控制項。 畫面控制項轉換揭開動畫。
ScreenTransition.UnCoverRight(螢幕轉換.UnCoverRight) 目前畫面控制項會滑出視圖,並從左向右移動,揭開新畫面控制項。 畫面控制項轉換揭開右側動畫。

您可以使用來 Navigate 建立或更新新畫面的 前後關聯變數 。 做為非必要的第三個引數,傳遞包含內容變數名稱的 記錄 做為 欄位 名稱和內容變數的新值。 此記錄與您搭配 UpdateContext 函式使用的記錄相同。

設定舊畫面控制項的 OnHidden 屬性、新畫面控制項的 OnVisible 屬性,或設定兩者可在轉換期間進行其他變更。 將更新 App.ActiveScreen 屬性以反映變更。

Navigate 通常會傳回 true ,但如果遇到錯誤,會傳回 false 。

上下文導覽變數說明請參閱 畫面控制項間的導覽。

Back

函式會 Back 回到最近顯示的畫面。

對於每次 Navigate 通話,應用程式都會追蹤出現的螢幕和轉換。 您可以使用連續呼叫 Back ,一直回到使用者啟動應用程式時出現的畫面。

當函數執行時 Back ,預設會使用反向轉換。 例如,如果螢幕透過 CoverRight 轉換出現, Back 則使用 UnCover (位於左側) 返回。 Fade 和 None 是它們自己的逆函數。 傳遞選擇性引數 以 Back 強制進行特定轉換。

Back 通常會傳回 true ,但如果使用者自啟動應用程式以來未流覽至另一個畫面,則會傳回 false 。

語法

Back( [ 轉場 ] )

  • transition - 可選。 在目前畫面控制項和上一個畫面控制項之間使用的視覺轉換。 請參閱本文這個引數的有效值清單。 預設下,透過畫面控制項傳回的轉換會與透過顯示傳回的轉換相反。

Navigate( 畫面 [, 轉場 [, UpdateContextRecord ] ] )

  • screen - 必需。 要顯示的畫面。 您也可以使用您想要瀏覽到的畫面上的控制項來取代 Screen。
  • transition - 可選。 要在目前的畫面控制項和下一個畫面控制項之間使用的視覺效果轉換。 請參閱本文這個引數的有效值清單。 預設值是 None。
  • UpdateContextRecord - 可選。 一筆至少包含一個欄位名稱和各欄位值的記錄。 這筆記錄會更新新畫面控制項的 內容變數,彷彿傳遞給 UpdateContext 函式一般。

範例

公式 描述 結果
Navigate( 詳情 ) 顯示 Details 畫面控制項,其中上下文變數值中沒有轉換或變更。 隨即快速出現 Details 畫面控制項。
Navigate( 詳細信息, ScreenTransition.Fade ) 顯示 Details 畫面控制項與 淡化 轉換。 內容變數的任何值都不會變更。 目前畫面會淡化以顯示 Details 畫面控制項。
Navigate( 詳細信息, ScreenTransition.Fade, { ID: 12 } ) 顯示 Details 畫面控制項與 淡化 轉換,並將 ID 上下文變數值變更為 12。 目前畫面會淡化顯示 Details 畫面控制項,且該畫面控制項上的上下文變數 ID 會設定為 12。
Navigate( 詳細信息, ScreenTransition.Fade, { ID: 12 , 陰影: Color.Red } ) 顯示 Details 畫面控制項與 淡化 轉換。 將 ID 上下文變數值更新為 12,並將 Shade 上下文變數值更新為 Color.Red。 目前畫面會淡化以顯示 Details 畫面控制項。 Details 畫面控制項上的上下文變數 ID 會設為 12,上下文變數 Shade 設為 Color.Red。 如果您將 Details 畫面控制項的 Fill 屬性設為 Shade,該控制項會以紅色顯示。
Back() 顯示先前附帶預設返回轉換的畫面控制項。 透過目前畫面控制項顯示的反向轉換顯示前一個畫面控制項。
Back( 屏幕過渡.封面 ) 顯示先前附帶 Cover 轉換的畫面控制項。 透過 Cover 轉換顯示前一個畫面控制項,不論是否透過目前畫面控制項顯示的轉換。

按步就班

  1. 建立空白應用程式。

  2. 對它新增第二個畫面控制項。

    應用程式包含兩個空白畫面控制項:Screen1 和 Screen2。

  3. 將 Screen2 的 Fill 屬性設為值 Gray。

  4. 在 Screen2 上,新增按鈕,並將其 OnSelect 屬性設定為以下公式:

    Navigate( Screen1, ScreenTransition.Cover )
    
  5. 按住 Alt 鍵時,選取按鈕。

    Screen1 通過覆蓋左側的過渡以白色背景顯示。

  6. 在 Screen1 上,新增按鈕,並將其 OnSelect 屬性設定為以下公式:

    Back()
    
  7. 按住 Alt 鍵時,選取按鈕。

    第二個畫面會透過揭開右側的轉換 (覆蓋 側的反向) 顯示為灰色背景。

  8. 重覆選取每個畫面控制項上的按鈕來回彈跳。

請參閱

使用上下文變數