Back 與 Navigate 函式

變更顯示的畫面。

概觀

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

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

使用者在不同的畫面之間瀏覽時,也會保留 內容變數。 您可以使用 Navigate 設定會顯示公式畫面控制項的一或多個內容變數,這是設定畫面控制項以外內容變數的唯一方式。 您可以使用這種方法,將參數傳遞至畫面控制項。 如果您已使用另一個程式設計工具,則這個方法類似將參數傳遞到程序。

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

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

適用於: 畫布應用程式 模型導向應用程式

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

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

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

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

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

正常 導覽 傳回 true,但是如果遇到錯誤,將會傳回 false

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

Back

適用於: 畫布應用程式

Back 函式返回最近顯示的畫面控制項。

對於每個 導覽 呼叫,應用程式會追蹤顯示的畫面控制項和轉換。 您可以使用後續的 返回 呼叫,在使用者啟動應用程式時顯示的畫面控制項一路返回畫面控制項。

Back函式執行時,預設會使用反向轉換。 例如,如果畫面控制項透過 CoverRight 轉換顯示,Back 會使用 Uncover (即向左) 返回。 淡化 是自己的反向選項。 將非必要引數傳遞給 Back 以強制進行特定轉換。

Back 正常傳回 true,但應用程式啟動以來使用者未曾導覽至另一個畫面控制項時,就會傳回 false

語法

Back( [ Transition ] )

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

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

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

範例

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

按步就班

  1. 建立空白應用程式。

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

    應用程式包含兩個空白畫面控制項:Screen1Screen2

  3. Screen2Fill 屬性設為值 Gray

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

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

    Screen1 會透過覆蓋到左側的轉換顯示白色背景。

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

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

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

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

請參閱

使用內容變數