IBOutlet 與 IBAction 的愛恨情仇

各位熱衷ios app開發的夥伴大家晚安大家好

今天要跟大家介紹的是IBOutlet與IBAction這兩個元件,我相信有寫過 Java/Andorid的人一定都知道,當你在界面拉完元件之後,你必須回到程式面,創建這個物件,然後讓彼此建立連結,甚至Button如果要偵測按鈕事件的話,還必須先建立監聽器,才可以在使用者點擊的時候,順利偵測到並且產生相對應的互動事件。

上述的這些煩雜步驟,在ios app上,全部都……不需要!

基本上你如果要要建立介面與程式的連結,你只要先在Main.Storyboard拉完元件之後,透過右方上的Assistant Editor切換成左右視窗之後,直接右鍵按住你剛剛創建出來的元件到,並且拖到右邊程式碼的位置,就可以發現Xcode自己幫你完成宣告,以及建立連結,往後你只需要使用名稱,即可直接對應到這個元件了。

這邊我補充說明一下,基本上在Main.Storyboard當中,你有拉幾個「預計與使用者互動」元件,就應當要建立幾個連線,所以與使用者互動的意思就是指像是按鈕、輸入欄位、滑動條等等。

當我們順利拉線成功之後,自動建立的程式碼大概會長得像下列這樣

@IBOutlet weak var startTextfied: UITextField!

意思大概是建立一個Interface Builder的Outlet連線,然後是以弱參考建立一個繼承UITextField的元件,名為startTextfield。

@IBAction weak var btnResult(_ sender: UIButton) {

}

這邊的意思是建立一個Interface Builder的Action連線,同樣以弱參考形式建立一個繼承來自UIButton的物件,名為btnResult。後面_ sender:指的就是這個按鈕的動作,最後的大括號當中可以讓我們撰寫,當使用者按下按鈕之後,需要執行哪些程式碼。

有沒有發現什麼地方呀???

畫面跟程式碼互動的類型主要分成兩類,一類是Action,另一類則是Outlet,可以簡單想成,Action就是畫面送一個動作給程式碼,然後程式碼透過Outlet把結果顯示在畫面上。

說了那麼多,最後附上整個app運行起來的gif給大家參考,同時也謝謝學長姐分享圖片使用。

最後附上整個擇偶app的github網址

https://github.com/nick1ee/TrueLoveSelection

如果有錯誤的地方,歡迎指正囉~~

--

--

Journey on programming
彼得潘的 Swift iOS / Flutter App 開發教室

Software Developer at 91APP. If you like my articles, please clap and follow me on Medium. Never stay still, never plateau!