YourfirstiOSapp(6)——Tutorial:Storyboards

Tutorial: Storyboards

創(chuàng)新互聯(lián)是一家專業(yè)提供松江企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計、成都網(wǎng)站制作、H5技術(shù)、小程序制作等業(yè)務(wù)。10年已為松江眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進行中。

教程:故事板

本教程建立在你在第一個教程 (Tutorial: Basics)中創(chuàng)建的對象的基礎(chǔ)上。你將利用你學(xué)過的關(guān)于視圖、視圖控制器、動作、以及導(dǎo)航的知識。跟隨第一個界面設(shè)計過程,你也會為你的ToDoList應(yīng)用程序創(chuàng)建一些關(guān)鍵的用戶界面流,并且添加行為到你已經(jīng)創(chuàng)建的場景中。

本教程將教你如何:

采用自動布局來靈活的添加用戶界面

使用故事板來定義app的內(nèi)容和流程

管理多視圖控制器

添加動作給用戶界面里的元素

在你完成本教程所有的步驟之后,你將有一個如下所示的app:

Adopt Auto Layout

采用自動布局

添加待辦事宜項(add-to-do-item scene)場景被配置為在縱向模式下操作,因為你就是這樣創(chuàng)建它的。所以,如果用戶旋轉(zhuǎn)了設(shè)備會發(fā)生什么?嘗試在模擬器中選準(zhǔn)你的app。

在iOS模擬器中旋轉(zhuǎn)

1.在iOS模擬器中啟動app。

2.選擇 Hardware > Rotate Left (或者 Command+Left Arrow).

正如你看到的,文本字段沒有正確顯示。它停留在接近屏幕中間的位置。文本字段應(yīng)該橫穿過整個屏幕,就像在縱向模式中一樣。幸運的是,Xcode有一個強大的內(nèi)建的布局引擎,稱為自動布局。通過自動布局,你可以按照你的意圖來放置屏幕中的元素,然后讓布局引擎決定實現(xiàn)這些意圖的最好方式。你使用約束(constraints,規(guī)定一個元素相對于另外一個元素的位置)來描述你的意圖,或者它的尺寸、或者當(dāng)有東西減少他們的空間時兩個中哪個元素應(yīng)該先收縮。對于add-to-do-item場景,有兩個約束被需要——一個是定位文本字段,另一個是設(shè)置它的大小。

在IB中可以很容易的設(shè)置這些約束(constraints)。

使用自動布局來定位文本字段

1.在項目導(dǎo)航器中選擇Main.storyboard.

2.在故事板中選擇文本字段。

3.在畫布中,從文本字段內(nèi)向上方的區(qū)域開始拖拽,結(jié)束在圍繞為本字段的空白區(qū)域。這個控件是文本字段的父視圖。
一個快捷菜單出現(xiàn)在你釋放拖動的位置。

4.從快捷按鈕中選擇 “Top Space to Top Layout Guide” 。
一個文本字段的頂部和導(dǎo)航條之間的間隔約束被創(chuàng)建。
如果出現(xiàn)不一樣的快捷菜單,可能菜單項是“Leading Space to Container”,這是應(yīng)為垂直拖拽到屏幕頂部造成的,你的拖拽方向不同。Xcode使用拖拽方向來理解何種約束使你想要的,而且它使用拖拽的開始和結(jié)束點來理解那個對象被約束關(guān)聯(lián)。繼續(xù)嘗試不同的拖拽方向來看看各種可用的約束。

5.當(dāng)你嘗試時,從文本字段的右側(cè)拖拽到父視圖,創(chuàng)建一個“Trailing Space to Container”約束。

6.從文本字段向左拖拽到父視圖,創(chuàng)建一個“Leading Space to Container” 約束。

這些約束指定文本字段的邊緣與它的父視圖之間的距離不會被改變。這就意味著如果設(shè)備方向變化,文本字段會自動的增長來滿足這些約束。

Checkpoint: 運行app。如果你旋轉(zhuǎn)設(shè)備,文本字段會隨著設(shè)備的旋轉(zhuǎn)而變化尺寸。

如果你沒有的到想要的行為,使用Xcode自動布局調(diào)試特性來幫助你。通過選中文本字段,選擇Editor > Resolve Auto Layout Issues > “Reset to Suggested Constraints”Xcode通過之前的步驟來設(shè)置約束?;蛘哌x擇Editor > Resolve Auto Layout Issues > Clear Constraints來移除所有的文本視圖的約束,然后重新按照上述步驟設(shè)置一遍。

雖然你添加的項目場景還不能做太多事情,但是基本的用戶界面和功能已經(jīng)完成。從一開始就考慮布局可以確保你有一個堅實的構(gòu)建基礎(chǔ)。

Creating a Second Scene

創(chuàng)建第二個場景

迄今為止,你一直是在一個通過視圖控制器管理的單一場景中工作,這個場景是一個讓你能夠在待辦事宜清單上添加項目的頁面?,F(xiàn)在,是時候來創(chuàng)建一個用于顯示整個待辦事宜清單的場景了。幸運的是,iOS附帶一個強大的內(nèi)建的類叫做表格視圖,它專門設(shè)計用來顯示滾動的表格項目。

創(chuàng)建一個帶有表格視圖的場景到你的故事板

1.在項目導(dǎo)航器中選擇Main.storyboard.

2.在工具區(qū)打開對象庫。

3.從列表中拖拽表視圖控制器對象,把它放在畫布中 add-to-do-item場景的左側(cè)。如果你需要,你可以使用右下角的縮放按鈕來調(diào)整畫布大小使得有足夠的空間來拖拽它。如果你看到一個標(biāo)示圖的內(nèi)容,但當(dāng)你視圖拖拽它到畫布的時候,沒有發(fā)生任何事,你或許拖動的是一個表視圖而不是表視圖控制器。表視圖是是表視圖控制管理的一個事物,但你想要整個封裝,所以你要查找表視圖控制器并將它拖動到畫布。

你現(xiàn)在有了兩個場景,一個顯示待辦事宜項目的清單,另外一個是添加待辦事宜項目。

當(dāng)用戶啟動app的時候,首先要看到有意義的列表,所以告訴Xcode設(shè)置表視圖控制器為第一個場景。

設(shè)置表視圖控制器為初始化場景

1.如果必要,使用畫布左下角的按鈕來打開大綱視圖

2.在大綱視圖中,選擇最新添加的表視圖控制器。

3.在表視圖控制器選中的狀態(tài)下,打開在工具區(qū)的屬性檢查器

4.在屬性檢查器中,選擇初始化視圖控制器選項旁邊的復(fù)選框。


或者,你可以直接從XYZAddToDoItemViewController拖拽初始化場景指示器到畫布上表視圖控制器。
表視圖控制器在故事板中被設(shè)置為初始化視圖控制器,在app啟動的時候會被加載為第一個場景。

Checkpoint:運行app。你將看到的是一個空的表視圖,而不是add-to-do-item 場景。

在表視圖中顯示靜態(tài)的內(nèi)容

因為你還沒有學(xué)過關(guān)于數(shù)據(jù)存儲的內(nèi)容,創(chuàng)建和存儲待辦事宜事項和在表視圖中顯示它們還為時尚早。但你不需要真的數(shù)據(jù)原型來用于你的用戶界面。Xcode允許你在表視圖中創(chuàng)建靜態(tài)的內(nèi)容。這使得更容易看到用戶界面如何行為,這是一個值得嘗試的不同方法。

在表格視圖中創(chuàng)建靜態(tài)的表視圖單元

1.在界面的大綱視圖中,選擇表視圖控制器下得表視圖。

2.在表視圖被選中的狀態(tài)下,打開位于工具區(qū)的屬性檢查器

3.在屬性檢查器中,內(nèi)容選項旁邊的彈出菜單中選擇靜態(tài)表單元。
在你的表視圖中將出現(xiàn)三個空的表視圖單元。

4.在大綱視圖或者畫布中,選擇頂部的表單元。

5.在屬性檢查器中,從樣式選項旁邊的彈出菜單中選擇基礎(chǔ)(Basic)。
基礎(chǔ)樣式包括標(biāo)簽,所以Xcode在表單元中創(chuàng)建一個文本為“Title”的標(biāo)簽。

6.在大綱視圖或畫布中選擇這個標(biāo)簽。

7.在屬性檢查器中,改變標(biāo)簽的文本為“Mow the Lawn”。通過按回車鍵或是點擊工具區(qū)域以外的范圍來確定這個修改。
另外,你能夠通過雙擊來編輯標(biāo)簽和直接編輯文本。

8.重復(fù)4-7的步驟來輸入其他表單元,給他們類似的待辦事宜項目。

9.創(chuàng)建足夠多得表單元來使項目超過屏幕。你能通過復(fù)制粘貼或者按住Option鍵加拖動來來創(chuàng)建新的表單元。

Checkpoint: 你將看到帶有預(yù)配置表單元得表視圖添加到IB中??纯串?dāng)你滾動它是表視圖的感覺。嘗試旋轉(zhuǎn)模擬器設(shè)備——注意表視圖已經(jīng)配置為恰當(dāng)?shù)膬?nèi)容。你通過使用表視圖來得到很多靈活的行為。

當(dāng)你完成后,是時候為表視圖提供導(dǎo)航方法,×××事宜清單項目,到你創(chuàng)建的第一個場景,在哪里用戶創(chuàng)建新的待辦事宜項目。

添加一個繼續(xù)(Segue)來向前導(dǎo)航

你在故事板中配置了兩個視圖控制器,但是他們之間沒有聯(lián)系。關(guān)聯(lián)兩個場景被稱為繼續(xù)(segues)。

在創(chuàng)建一個segue之前,你需要配置你的場景。首先你要封裝你的XYZToDoListViewController到導(dǎo)航控制器。從Defining the Interaction 回憶導(dǎo)航控制器提供導(dǎo)航條并跟蹤導(dǎo)航棧。你將添加一個按鈕到這個導(dǎo)航條來轉(zhuǎn)換到XYZAddToDoItemViewController場景。

添加導(dǎo)航控制器到你的表視圖控制器

1.在大綱視圖選擇表視圖控制器。

2.在視圖控制器被選中的情況下選擇Editor > Embed In > Navigation Controller

Xcode添加一個新的導(dǎo)航控制器到你的故事板,為他集成初始化場景,并且創(chuàng)建一個新導(dǎo)航控制器和已存在的表視圖控制器之間的關(guān)系。在畫布中,如果你選擇兩個場景的連接圖標(biāo),你將看到它是根視圖控制器的關(guān)系。這意味著導(dǎo)航欄下面視圖顯示的內(nèi)容是表視圖。初始化場景設(shè)置為導(dǎo)航控制器,因為導(dǎo)航控制器擁有你app中將被顯示的所有內(nèi)容——它是待辦事宜清單和添加待辦事宜項目兩個場景的容器。

Checkpoint: 運行app。在表視圖上面你會看到一個額外的控件。這是導(dǎo)航控制器提供的導(dǎo)航條。

現(xiàn)在,你將添加一個標(biāo)題和一個按鈕到導(dǎo)航條。

配置導(dǎo)航條

1.在大綱視圖中或畫布中,在表視圖控制器下面選擇導(dǎo)航項目。
導(dǎo)航條從當(dāng)前導(dǎo)航控制器顯示的視圖控制中獲取他們的標(biāo)題,他們本身沒有標(biāo)題。你使用導(dǎo)航項設(shè)置你的待辦事宜列表的標(biāo)題,而不是直接在導(dǎo)航條上設(shè)置

2.在屬性檢查器中,在標(biāo)題字段中鍵入My To-Do List。

3.如果必要,打開對象庫。

4.從列表中拖拽條按鈕到表視圖控制器的導(dǎo)航條右側(cè)。
在你拖拽條按鈕項目的地反,按鈕含有文本“Item”顯示。

5.在大綱視圖或畫布中選擇條按鈕(bar button)項目。

6.在屬性檢查其中,在 Bar Button項目區(qū)域找到Identifier選型。從Identifier彈出的菜單中選擇Add。
按鈕會改變成Add按鈕 (+)。

Checkpoint: 運行app。導(dǎo)航條將顯示一個標(biāo)題和一個Add 按鈕。按鈕還不能做任何事,接下來你將修改它。

你想通過Add按鈕切換到add-to-do-item場景。這個changing已經(jīng)被設(shè)置,但是沒有連接到其他場景。Xcode能夠輕松的設(shè)置Add按鈕,通過點擊它來切換到其他場景。

配置Add按鈕

1.在畫布中選中Add按鈕

2.按住Control從按鈕拖拽到add-to-do-item視圖控制器。


標(biāo)題為Action Segue 的快捷菜單出現(xiàn)在釋放拖拽的位置。


這就是Xcode如何允許你選擇什么類型的segue,它體現(xiàn)當(dāng)歐諾個戶點擊Add按鈕的時候,app是如何從 待辦事宜清單 轉(zhuǎn)換到 添加待辦事宜項 的。

3.從彈出菜單中選擇“push”。

Xcode設(shè)置segue和配置 待辦事宜項目 視圖控制器來被顯示在導(dǎo)航控制器中——你將在IB中看到導(dǎo)航控制器。

此時,你或許注意到在你的工程上的警告。繼續(xù)且打開導(dǎo)航問題來查看這個錯誤。

因為你增加 添加待辦事宜項 到導(dǎo)航棧,它現(xiàn)在顯示一個導(dǎo)航條。這個導(dǎo)航條導(dǎo)致你的文本字段向下移動,這意味著你之前設(shè)置的自動布局約束不再滿足。幸運的是,這個問題非常容易修復(fù)。

更新自動布局約束

1.在大綱視圖或是畫布中選中文本字段。

2.在畫布中,打開解決自動布局問題的彈出菜單,選擇Update Constraints。
或者,你能選擇Editor > Resolve Auto Layout Issues > Update Constraints。
約束被更新且Xcode警告消失。

Checkpoint: 運行app。你已經(jīng)能夠通過點擊Add按鈕從表視圖轉(zhuǎn)換到 添加待辦事宜項目 視圖控制器。因為你使用帶有壓棧segue的導(dǎo)航控制器,向后導(dǎo)航將自動處理。這意味著你能夠通過點擊back按鈕來返回到表視圖。

壓入導(dǎo)航的工作就像它是應(yīng)該、但當(dāng)添加項目的時候它又不完全如你想要的那樣工作。壓入導(dǎo)航是為挖掘界面設(shè)計的,你要提供很多關(guān)于用戶如何選擇的信息。添加一個項目,在另一方面,是一個模態(tài)操作——用戶執(zhí)行一些動作,這些操作是完整和獨立的,然后從場景返回到主導(dǎo)航。合適的方法展示這個場景類型是模態(tài)segue。

更改segue的類型

1.在大綱視圖或者畫布中,選擇從表視圖控制器到添加待辦事宜項視圖控制器的segue。

2.在屬性檢查器中,選擇類型選項旁邊的彈出菜單中選擇模態(tài)(Modal)。

因為模態(tài)視圖控制器不會添加到導(dǎo)航棧,它不會從表視圖控制器的導(dǎo)航控制器獲得一個導(dǎo)航條。但是,你想保持導(dǎo)航條支持用戶的視覺連續(xù)性。想要在顯示的時候,給添加待辦事宜項視圖控制器一個形式上的導(dǎo)航條,把它嵌入到它自己的導(dǎo)航控制器。

添加一個導(dǎo)航控制器到添加待辦事宜項視圖控制器

1.在大綱視圖中選擇視圖控制器。

2.在視圖控制器被選擇的狀態(tài)下,選擇Editor > Embed In > Navigation Controller。

和之前一樣,Xcode添加一個導(dǎo)航控制器和在視圖控制器頂部顯示一個導(dǎo)航條。接下來,配置這個條來添加一個標(biāo)簽給這個場景以及兩個按鈕,取消和完成。之后,你將連接這兩個按鈕到動作。

配置導(dǎo)航條到添加待辦事宜項視圖控制器

1.在大綱視圖或者畫布中,選擇視圖控制器下的導(dǎo)航項。如果有必要,打開屬性檢查器。

2.在屬性檢查器中,在標(biāo)題字段輸入Add To-Do Item。
Xcode更改對視圖控制器的描述,這個視圖控制器是從“View Controller”到“View Controller – Add To-Do Item”,來讓它更容易識別場景。這描述顯示在大綱視圖中。

3.從對象庫拖拽一個條按鈕到在add-to-do-item視圖控制器中的導(dǎo)航條的右側(cè)。

4.在屬性檢查其中,選擇從標(biāo)識選項旁邊的彈出菜單中的Done。
按鈕的文本會變?yōu)椤癉one”。

5.從對象庫中拖拽另一個條按鈕項到 add-to-do-item視圖控制器總的導(dǎo)航條的左側(cè)。

6.在屬性檢查器中,選擇標(biāo)識選項旁邊的彈出菜單的Cancel。
按鈕的文本會變?yōu)椤癈ancel”。

Checkpoint: 點擊Add按鈕。你還看到添加項目的的場景,但是沒有返回到待辦事宜清單的返回導(dǎo)航按鈕,你彈道的是兩個你添加的按鈕,Done和Cancel。這兩個按鈕還沒有連接任何動作,所以你能點擊它們,但是它們沒有任何動作。配置這些按鈕來完成或取消編輯一個新的待辦事宜項。

Create Custom View Controllers

創(chuàng)建自定義視圖控制器

你已經(jīng)完成了所有的無需編程的配置。但是想要配置完成add-to-do-item視圖控制器需要一些代碼,你需要有一個地方來存放它?,F(xiàn)在Xcode已經(jīng)配置了add-to-do-item視圖控制器和表視圖控制器作為通用的視圖控制器。想要有一個地方來自定義代碼,你需要創(chuàng)建每個視圖控制器的子類,然后配置接口到這些子類。

首先,你將解決add-to-do-item視圖控制器場景。自定義視圖控制器類將被稱為XYZAddToDoItemViewController,因為這個視圖控制器將控制這個為你的待辦事宜清單添加新的項目的場景。

創(chuàng)建UIViewController子類

1.選擇 File > New > File (按 Command+N).

2.在左邊出現(xiàn)的對話框中,在iOS下選擇Cocoa Touch。

3.選擇Objective-C類,并且點擊Next。

4.在Class字段,在前綴XYZ后面輸入AddToDoItem。

5.在“Subclass of”彈出菜單里選擇UIViewController。
類標(biāo)題改為“XYZAddToDoItemViewController.” Xcode幫助你明確命名,你創(chuàng)建了一個自定義的視圖控制器。

6.確?!癟argeted for iPad” 和 “With XIB for user interface”選項沒有被選中。

7.點擊Next。

8.在默認位置保存你的項目。

9.組選項默認為應(yīng)用程序名字,ToDoList。

10.Targets 區(qū)域在默認狀態(tài)下是不選中的。

11.點擊創(chuàng)建。

現(xiàn)在,你創(chuàng)建了一個自定義的視圖控制器子類,你需要告訴故事板來使用你的自定義類來替換通用視圖控制器。故事板文件是在app運行的時候被使用的對象的配置。app機器足夠聰明來為你把一般視圖控制器替代為你自定義的視圖控制器,但你需要告訴故事板這是你想要的。

確定你的類作為場景的視圖控制器

1.在工程導(dǎo)航器中選擇Main.storyboard.

2.如有必要,打開大綱視圖.

3.在大綱視圖中,選擇 “View Controller – Add To-Do Item”視圖控制器。
點擊 “View Controller – Add To-Do Item” 旁邊的三角形來顯示你的場景中的對象。第一個應(yīng)該是視圖控制器。點擊它來選擇它。注意這個場景行有不同的圖標(biāo)。

4.視圖控制器選擇,在工具區(qū)打開標(biāo)識檢查器
標(biāo)識檢查器在當(dāng)你點擊工具區(qū)從左開始的第三個按鈕的時候出現(xiàn)。它讓你編輯在故事板中對象的屬性,例如什么類。

5.在身份檢查器中,打開Class選項旁邊的彈出按鈕。
你將看到一個Xcode知道的所有視圖控制器的類的列表。在列表中最近一個應(yīng)該是你自定義的視圖控制器XYZAddToDoItemViewController。選擇它來告訴Xcode要在這個場景使用你的視圖控制器。

運行時,你的故事板將創(chuàng)建一個XYZAddToDoItemViewController的實例來代替通用的UIViewController。注意Xcode把對add-to-do-item視圖控制器場景的描述從 “View Controller – Add To-Do Item”改變?yōu)椤癆dd To Do Item View Controller – Add To-Do Item.”Xcode指導(dǎo)你現(xiàn)在為這個場景使用的是自定義的視圖控制器,并且它解釋自定義類的名字,以便它更容易理解故事板中正在進行是什么。

現(xiàn)在,為表視圖控制器做相同的事情。

創(chuàng)建一個UITableViewController的子類

1.選擇 File > New > File (或按 Command+N).

2.在左邊,選擇iOS下的Cocoa Touch,然后選擇Objective-C Class。如果你還沒有在本教程自最近的步驟創(chuàng)建任何類的話,他或許已經(jīng)為你選擇好了。

3.點擊 Next.

4.在Class字段,鍵入ToDoList。注意Xcode在XYZ,你的類的前綴,和ViewController之間作為插入點,鍵入名字。

5.在 “Subclass of”的彈出菜單中選擇UITableViewController。

6.確定“Targeted for iPad” 和 “With XIB for user interface”沒有被選中。

7.點擊 Next.
保存到默認位置。

8.Group保持默認的app的名字。

9.Targets 區(qū)域在默認狀態(tài)下是不選中的。

10.點擊 Create.

再一次確定你配置的自定義表視圖控制器XYZToDoListViewController在故事板中。

配置故事板

1.在工程導(dǎo)航器中選擇Main.storyboard.

2.如果有必要,打開大綱視圖

3.在大綱視圖中,選擇表視圖控制器并在工具區(qū)打開身份檢查器

4.在身份檢查器中,從Class選項旁邊的彈出菜單中選擇XYZToDoListViewController

現(xiàn)在,你已經(jīng)準(zhǔn)備好添加自定義代碼到你的視圖控制器了。

Unwind a Segue to Navigate Back

展開Segue到Navigate Back

除了push和modal的segues,Xcode還提供了unwind segue。這個segue允許用戶從給定的場景返回之前的場景,并且它為你的代碼提供位置,這個代碼是當(dāng)用戶在這些場景間進行導(dǎo)航的時候要被執(zhí)行的。你可以使用unwind segue 來把XYZAddToDoItemViewController返回到XYZToDoListViewController。

Unwind segue是通過添加一個方法到目標(biāo)視圖控制器來創(chuàng)建的(這個視圖控制器是你想讓unwind做的)。方法能被unwound不需要返回一個動作 (IBAction),并且故事板的segue(UIStoryboardSegue)要作為參數(shù)。因為你想要unwind back 到XYZToDoListViewController,你需要添加一個帶有XYZToDoListViewController格式的實現(xiàn)的動作方法。

unwind back 到XYZToDoListViewController

1.在工程導(dǎo)航器中打開XYZToDoListViewController.m.

2.在@implementation 行下面添加如下代碼:

.-(IBAction)unwindToList:(UIStoryboardSegue*)segue

.

.{

.

.

.

.}

3.

4.

你可以為unwind動作隨意命名。稱之為unwindToList:可以清楚的表明unwind將帶你到何處。為了工程的今后,采取類似命名約定,一個名字能夠清楚的表明unwind將你帶往何處。

現(xiàn)在,離開這這個空的實現(xiàn)方法。稍后你將使用這個方法來檢索從XYZAddToDoItemViewController來的數(shù)據(jù)來添加一個項目到你的to-do-list。

創(chuàng)建unwind segue,將Cancel和Done按鈕連接到unwindToList: 動作,通過源視圖控制器XYZAddToDoItemViewController里的dock中的Exit圖標(biāo)。

連接按鈕到unwindToList: action

1.在工程導(dǎo)航器中選擇Main.storyboard.

2.在畫布中,從Cancel按鈕Control+拖拽到add-to-do-item場景dock中Exit項目。
如果你在場景dock中沒有看到Exit項目,但看到場景描述,點擊按鈕直到你看見它。
在拖動結(jié)束的位置出現(xiàn)一個菜單。

3.在快捷菜單中選擇unwindToList:。
這是你剛才添加到XYZToDoListViewController.m文件中的動作。這意味著當(dāng)Cancel按鈕被點擊的時候,segue將unwind并且這個方法將被調(diào)用。

4.在畫布中,Control+拖拽,從Done按鈕到場景dock中的Exit項目。

5.從快捷菜單中選擇unwindToList:。

注意,你為Cancel和Done按鈕使用相同的方法。在下一個教程中,你將區(qū)別這兩種不同的情況,當(dāng)你在寫處理unwind segue的方法的時候。

Checkpoint: 運行app。啟動后,你將看到一個表視圖,但這里沒有數(shù)據(jù)。你能點擊Add按鈕并從XYZToDoListViewController導(dǎo)航到XYZAddToDoItemViewController。你能點擊Cancel和Done按鈕來返回到表視圖。

那么為什么你不能顯示數(shù)據(jù)?表示圖有兩種途徑來獲得數(shù)據(jù),靜態(tài)和動態(tài)。當(dāng)表視圖的控制器實現(xiàn)請求的UITableViewDataSource方法,表視圖請求它的視圖控制器來顯示數(shù)據(jù),不管靜態(tài)數(shù)據(jù)在IB中是否已經(jīng)被配置。如果你查看XYZToDoListViewController.m,你將注意到三個實現(xiàn)方法——numberOfSectionsInTableView:, tableView:numberOfRowsInSection:, 和 tableView:cellForRowAtIndexPath:。你能通過把這三個方法添加注釋來重新顯示靜態(tài)數(shù)據(jù)。如果喜歡你可以繼續(xù)嘗試。

Recap

回顧

至此,你完成了app界面的開發(fā)。你有了兩個場景——一個用來添加項目到待辦事宜清單,另一個顯示這個清單——并且你能在他們之間進行導(dǎo)航。接下來,你將實現(xiàn)添加待辦事宜項目和顯示這個清單的功能。在下個模塊中會覆蓋數(shù)據(jù)操作和行為實現(xiàn)。

Defining the Interaction

Incorporating the Data

Copyright 2014 Apple Inc. All rights reserved. Terms of Use | Privacy Policy | Updated: 2013-10-22

文章標(biāo)題:YourfirstiOSapp(6)——Tutorial:Storyboards
網(wǎng)頁網(wǎng)址:http://bm7419.com/article16/gosggg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)網(wǎng)站維護、App設(shè)計、Google網(wǎng)站建設(shè)、服務(wù)器托管

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)