如何設定 storyboard 裡元件的 class

在 storyboard 我們可以設計 iOS App 畫面,加入各式各樣的元件,比方 controller ,image view,label,button 等。這些元件的功能都由它們的 class 決定,因此我們只要將它們的 class 改成自訂的 class,即可自己寫程式實現想要的功能。

iOS App 每個畫面的功能主要由 controller 控制,因此我們很常自訂 controller 的類別實現畫面的功能,接下來我們就以設定 view controller 的類別為例說明吧。

1 新增繼承 UIViewController 的 controller 類別 TrueLoveViewController。

詳細步驟可參考以下連結。

記得 Subclass of (父類別)選擇 UIViewController,如此我們新增的類別才能繼承得到 view controller 的功能。

2 從 storyboard 點選想要設定 class 的 controller 元件。

3 從 Identity inspector 頁面的 Class 欄位設定元件的類別。

切換到 Identity inspector 頁面,點選 Class 欄位右邊向下的箭頭,從清單裡選擇 TrueLoveViewController。

我們也可以在 Class 欄位先輸入前幾個字,快速找到目標。如下圖所示,當我們輸入 t 時,Class 自動變成 TrueLoveViewController。

剛剛的例子以 view controller 為例,不過 iOS App 也常用 table view controller 顯示表格。如果想自訂 table view controller 的類別,記得要改成繼承 UITableViewController。

當設定元件的 Class 時,請記得只能設定繼承元件原本類別的 class,如此它才會擁有元件應該要有的能力,才有資格當元件的類別,比方 View Controller 元件的類別一定要繼承 UIViewController。

如下圖所示,View Controller 元件的 Class 下拉選單只會列出有資格的 class,因此它列出的都是繼承 UIViewController 的類別。有沒有資格看的是繼承,而不是 class 的名字。就好像你很有錢是因為繼承了香港首富李嘉誠,但你的小學同學名字叫曾有錢卻沒什麼錢,常常跟你借錢。

剛剛我們主要示範 controller 的例子,同樣的方法可以套用到 Interface Builder 裡加入的各種元件,我們可以將它們改為自訂類別,擴充加入想要的功能。

--

--

彼得潘的 iOS App Neverland
彼得潘的 Swift iOS App 開發問題解答集

彼得潘的iOS App程式設計入門,文組生的iOS App程式設計入門講師,彼得潘的 Swift 程式設計入門,App程式設計入門作者,http://apppeterpan.strikingly.com