天天看點

ios入門之界面基礎ios跳轉執行個體

學習移動app開發,我們常常從講解基本的控件開始,如uilabel、uisearchbar、uibutton、uitextfield等等。在實作一個簡單的ios 應用之前,我們首先來看ios開發中一些基本的概念。

視圖控制器是mvc(modl-view-controller)模式的邏輯部分。按照字面意思,這個控制器能夠控制某個視圖。

蘋果極力推崇mvc這種開發模式,并且幫我們實作了一個叫做uiviewcontroller的控制器,它是uikit的一部分。uikit是衆多能夠制作互動界面元素的類,如果你在某個類的開頭是ui,那麼這個類屬于uikit。uiviewcontroller視圖屬性被連接配接到一個視圖檔案,大多數情況下,是一個storyboard檔案。

uiviewcontroller提供一些需要的方法和屬性,通常我們在使用的時候隻需要将uiviewcontroller子類化即可。如:

在這個例子中,父類就是uiviewcontroller。viewdidload()是uiviewcontroller預設的方法。

我們在編寫一個ios軟體的時候,往往不隻一個界面,界面之前跳轉我們常常會用到navigation controller這麼一個東西。一個uinavigationcontroller可以在數組中支援多個uiviewcontroller,導航控制器(navigation controller)按照先進後出的堆棧管理原則對我們建立的uiviewcontroller進行管理。通過self.title屬性來設定導航欄的标題。如:

table views是用來顯示滾動視圖的控件,滾動視圖是ios apps中最常見的使用者界面。滾動視圖中的每一行叫做cell,cell是用了展示table view中每行的内容。table view可以有很多個cell,多個cell組成section(組)。

在iphone的設定界面,就是用不同的section把界面分開,像通知中心,控制中心,個人隐私,每個table view都有header和footer,header是在cell上面,footer在cell下面。

在很多的oa軟體中,往往都有定時提醒這麼一個功能。在app内部發生某個事件時,就會發出提醒,為某個事件訂閱或者接收提醒的過程叫做delegation(委托)。

例如,我們使用delegate建立table view,并告知要繪制10行。

uitableviewcontroller會自動建立一個table view,然後設定tableview屬性,同時也需要委托自己擷取所有需要的delegate方法。

uitableview的delegate協定有三個必須要寫的方法,叫做uitableviewdatasource。這個協定包括組的數量,美組中行的數量,以及cell如何展現。

第一個方法是numberofsectionsintableview(_:),如:

注:注意到return那行目前是零,這意味着這個table view中沒有組。蘋果公司增加了一個警告注釋,說如果組的個數是零,那麼就不會顯示行,組包含行cell,沒有了組section,行cell也就不會被顯示出來。

第二個方法是tableview(_:numberofrowsinsection:),這個方法決定了某個組裡具體有多少行,當然這裡也不能為0:

第三個方法是tableview(:cellforrowatindexpath:),這個方法裡有個參數值叫indexpath,是一個nsindexpath。

section組屬性的索引是目前組,cell行屬性的索引是目前行:

第一組第一行的索引nsindexpath是0,0。

第一組第四行的索引nsindexpath是0,3。

第三組第一行的索引nsindexpath是2,0。

可以用點文法調用section和row屬性:

tableview代碼:

為了友善大家的了解,我們先來一個簡單的跳轉的執行個體。

1)打開xcode,點選頂部菜單欄的file -> new -> project,從模闆中選擇single view application,點選next。如圖:

ios入門之界面基礎ios跳轉執行個體

2)輸入項目名稱等屬性,點選next。

3)打開main.storyboard,點選inspector上工具欄中第一個圖示file inspector,滑鼠移動到到中間部分,不勾選use auto layout選項。這時會出現一個對話框,選擇iphone。

ios入門之界面基礎ios跳轉執行個體

4)選中這個界面,然後點選頂部菜單欄的editor -> embed in -> navigation controller。一個新的scene會增加到storyboard中,一個scene表示app一屏或者一個界面。navigation controller scene和之前的view controller scene是連接配接在一起的,這連接配接說明view controller scene是navigation controller scene裡第一個出現視圖,點選storyboard editor左下角的盒子按鈕打開document outline,document outline顯示了storyboard檔案中所有的控件以及控件所處的層次等級。

ios入門之界面基礎ios跳轉執行個體

5)接下來我們在viewcontroller.m中建立一個按鈕,用來跳轉到第二個界面。

先建立一個按鈕,代碼如下:

然後通過action添加跳轉方法:

整體的代碼結構如下:

ios入門之界面基礎ios跳轉執行個體