鍍金池/ 教程/ iOS/ 界面導(dǎo)航
上下文菜單
更新記錄
文本與標(biāo)簽
使用 iOS 技術(shù)
開發(fā)您的 Watch 應(yīng)用
Watch 應(yīng)用結(jié)構(gòu)
預(yù)覽概要
界面對象
UI 概要
Tables
配置 Xcode 項目
圖片
通知要點
設(shè)置
界面導(dǎo)航
管理你的預(yù)覽界面
管理自定義 Long Look 界面

界面導(dǎo)航

對于那些不只一屏內(nèi)容的 WatchKit App 來說,你必須選擇一種在界面之間導(dǎo)航的方式。WatchKit App 支持兩種完全不一樣的導(dǎo)航方式:

  • 翻頁模式 這種方式適合那些數(shù)據(jù)模型較簡單的 App ,每頁的內(nèi)容和其它頁面沒有什么關(guān)聯(lián)。翻頁模式界面包含兩個或更多的相互獨立的視圖控制器,但任何時候只有一個是可以被顯示的。App 運行時,用戶通過在屏幕上左右滑動來切換不同的界面。在屏幕下方有小點來指示用戶當(dāng)前頁面所在的位置。
  • 層級模式 這種方式適合數(shù)據(jù)模型較復(fù)雜或是數(shù)據(jù)結(jié)構(gòu)有一定層級關(guān)系的 App。層級模式的一般都是基于一個根視圖控制器,在這個控制器里面你可以提供一個按鈕,點擊之后推出一個新的視圖控制器來顯示在屏幕上。

盡管你不能在 App 里面混合使用兩種導(dǎo)航方式,但你可以在層級模式里面使用模態(tài)視圖。模態(tài)視圖是一種打斷用戶正常瀏覽流程來要求用戶輸入或是展示信息的一種方式。在翻頁模式和層級模式中都可以使用模態(tài)視圖。模態(tài)視圖本身可以包含一個視圖控制器或是包含多個基于翻頁模式的控制器。

實現(xiàn)翻頁模式界面

通過在 App 的 Storyboard 里面創(chuàng)建從一個視圖控制器到下個視圖控制器的 next-page 類型的 segue 來設(shè)置使用翻頁模式。

在視圖控制器之間創(chuàng)建 next-page segue

  • 在 Storyboard 里面為你的每個頁面添加視圖控制器。
  • 按住 Control 鍵點擊 App 的主視圖控制器不放,然后拖動到另一個視圖控制器。
  • 放開鼠標(biāo)按鍵。
  • 從 segue 類型面板選擇 “next page”類型。
  • 用同樣的方法在其它界面之間創(chuàng)建 segue。你設(shè)置 segue 的順序決定了界面上的顯示順序。

你在 Storyboard 里面定義的 segue 會在 App 啟動的時候加載。你可以通過在程序啟動的早期調(diào)用 reloadRootControllersWithNames:contexts: 方法來動態(tài)設(shè)置你要顯示的頁面集。比如你可以在主視圖控制器的init方法里面調(diào)用以上方法來強制 WatchKit 加載其它的視圖集。

所有翻頁模式的視圖控制器都是在界面顯示之前就被創(chuàng)建并初始化好的,但一次只能顯示一個。一般來說,Watchkit 顯示初始化序列中的第一個視圖控制器。如果要改變初始顯示的頁面,在 init 或是 awakeWithContext: 方法中調(diào)用 becomeCurrentPage 方法。

用戶從一個界面導(dǎo)航到另一個界面的同時,WatchKit 負(fù)責(zé)激活、取消激活相應(yīng)的視圖控制器。在切換過程中,當(dāng)前顯示的視圖控制器的 didDeactivate 方法會被調(diào)用,接著會調(diào)用下一個將要顯示的視圖控制器的 willActivate 方法。通過視圖控制器的 willActivate 方法來跟新顯示最近的數(shù)據(jù)改變。

實現(xiàn)層級模式界面

在層級模式界面,你通過 segue 告訴 WatchKit 什么時候跳轉(zhuǎn)到新的頁面,或是調(diào)用當(dāng)前視圖控制器的 pushControllerWithName:context: 方法。在 Storyboard 中你從一個視圖控制器上的一個按鈕,控件組,或是列表中的一行創(chuàng)建 push segue 到另一個視圖控制器。如果你喜歡用編程的方式實現(xiàn) push,在任意視圖控制器的 action 方法中調(diào)用 pushControllerWithName:context:

在 push 一個新的視圖控制器到屏幕上的時候,建議通過 pushControllerWithName:context: 方法的 context 參數(shù)傳入一個數(shù)據(jù)對象,通過這個對象可以新的視圖控制器在顯示之前可以獲取一些狀態(tài)信息,同時通過這個對象告訴新的視圖控制器哪些數(shù)據(jù)需要被顯示。

被 push 出來的視圖控制器會在屏幕的左上角有一個 “<” 標(biāo)志來提醒用戶可以導(dǎo)航回去。當(dāng)用戶點擊屏幕左上角或是在屏幕上左滑,WatchKit 會自動隱藏最上面的視圖控制器。你也可以通過調(diào)用 popController 方法來編程實現(xiàn)返回,但你不能使 App 的主視圖控制器消失。

顯示模態(tài)視圖

模態(tài)界面通常是臨時打斷用戶的正常瀏覽來提示或是顯示信息。無論你 App 用的是什么導(dǎo)航方式,都可以在任何視圖控制器上顯示模態(tài)視圖。要模態(tài)的展示一個視圖控制器,可以使用以下方法中的任意一個:

創(chuàng)建一個 modal segue,連接到你想要顯示的視圖控制器。如果需要用 segue 顯示多個視圖,首先用 next-page segue 把需要模態(tài)展示的視圖控制器連接在一起,這樣你就把這些視圖控制器用翻頁模式組織在一起了。再用modal segue 連接到控制器組的第一個控制器上。如果 modal segue 連接到中間的某個控制器上,那么這個控制器之前的視圖將不會顯示。

模態(tài)視圖的左上角顯示了視圖控制器的標(biāo)題。當(dāng)用戶點擊該標(biāo)題時,Watchkit 會讓模態(tài)界面消失。因此最好設(shè)置有關(guān)閉模態(tài)界面提示意義的標(biāo)題。例如,當(dāng)顯示信息的時候,可以設(shè)置為DoneClose,如果沒有為視圖控制器設(shè)置標(biāo)題,WatchKit 默認(rèn)顯示 Cancel

上一篇:界面對象下一篇:Tables