在 Xamarin 中使用 watchOS 導覽
手錶上可用的最簡單的導覽選項是出現在目前場景頂端的簡單 強制回應彈出視窗 。
針對多場景監看應用程式,有兩種流覽範例可供使用:
強制回應介面
PresentController
使用方法可強制開啟介面控制器。 介面控制器必須在 Interface.storyboard 中定義。
PresentController ("pageController","some context info");
強制呈現的控制器會使用整個螢幕(涵蓋上一個場景)。 根據預設,標題會設定為 [ 取消 ],並點選它會關閉控制器。
若要以程式設計方式關閉強制回應呈現的控制器,請呼叫 DismissController
。
DismissController();
強制響應畫面可以是單一場景,或使用以頁面為基礎的版面配置。
階層式導覽
呈現類似可巡覽回堆疊的場景,類似於在iOS上運作的方式 UINavigationController
。 場景可以推送至流覽堆疊並彈出(以程序設計方式或由用戶選取)。
如同 iOS,左邊緣撥動會巡迴階層式導覽堆疊中的父控制器。
在程式代碼中推送和快顯
Watch Kit 不需要像 iOS 一樣建立過度拱形的「流覽控制器」,只要使用 PushController
方法推送控制器,就會自動建立瀏覽堆疊。
PushController("secondPageController","some context info");
監看式畫面會在左上方包含 返回 按鈕,但您也可以使用 PopController
以程式設計方式從導覽堆疊移除場景。
PopController();
如同 iOS,您也可以使用 PopToRootController
傳回瀏覽堆疊的根目錄。
PopToRootController();
使用 Segues
您可以在分鏡腳本中的場景之間建立 Segues,以定義階層式導覽。 若要取得目標場景的內容,操作系統會呼叫 GetContextForSegue
以初始化新的介面控制器。
public override NSObject GetContextForSegue (string segueIdentifier)
{
if (segueIdentifier == "mySegue") {
return new NSString("some context info");
}
return base.GetContextForSegue (segueIdentifier);
}
頁面型介面
頁面型介面由左至右撥動,類似於在iOS上運作的方式 UIPageViewController
。 指標點會沿著畫面底部顯示,以顯示目前顯示的頁面。
若要讓頁面型介面成為監看應用程式的主要UI,請搭配介面控制器和內容的陣列使用 ReloadRootControllers
:
var controllerNames = new [] { "pageController", "pageController", "pageController", "pageController", "pageController" };
var contexts = new [] { "First", "Second", "Third", "Fourth", "Fifth" };
ReloadRootControllers (controllerNames, contexts);
您也可以從應用程式中的其中一個其他場景, PresentController
呈現不是根目錄的頁面控制器。
var controllerNames = new [] { "pageController", "pageController", "pageController", "pageController", "pageController" };
var contexts = new [] { "First", "Second", "Third", "Fourth", "Fifth" };
PresentController (controllerNames, contexts);