標籤:點擊事件 roi 資訊 耦合性 刪除 rar 控制 normal bubuko
MVC架構模式
MVC即model(模型)、view(視圖)和controller(控制器),是一種軟體設計模式,專用於含有圖形化使用者介面的軟體設計,自20世紀80年代以來已經有30多年的曆史了。雖然年過已久,但是歲月這把殺豬刀似乎並沒有斬殺多少MVC的活力,時至今日,MVC依舊活躍於當今世界的各大架構中,其中包括QT、MFC、C#&.Net等等,並且在其基礎上,還衍生出“Hierarchical MVC”(HMVC)、“model-view-adapter”(MVA)等新秀模式。
MVC具體指的是:將圖形化軟體切分成model、view和controller共3個部分:
model:負責資料動態管理和軟體商務邏輯,接收來自controller的操作,並將結果及時傳遞給view。
view:直接呈現在使用者面前的資訊,比如一張圖片或一段文字。
controller:接收來自使用者的輸入,並轉換成相應的命令交給model。
MVC的優點是:3個部分各司其職、責任明確且耦合性低,很大程度上降低了軟體複雜性,從而提高了軟體的品質以及開發效率。
當我們在用AutoLayout布局我們的UI控制項的時候,其實我們就已經在使用MVC的設計方式了。我們今天的主角UIViewController扮演的正是MVC中的controller。話不多少,我們先來簡單認識一下UIViewController
致Android開發人員:UIViewController之於iOS如同Activity之於Android。
響應Button
首先,我們重新建立1個工程“Create a new Xcode project”->“Single View App”->命名工程“Charpter6”
建立工程會預設建立1個UIViewController,且命名為ViewController(如),我們看到ViewController預設產生了2個函數有待我們去完善。
其中didReceiveMemoryWarning用於處理記憶體告急的警告,以防記憶體流失。我們會在後續的章節對其進行介紹,目前我們還用不上它,將其刪除或置之不理即可。
另一個函數viewDidLoad是本節的重點,顧名思義,該函數就是用於載入View的。
我們切換到輔助編輯介面,並開啟Main.storyboard,然後拖入一個button到storyboard的ViewController的面板上。
然後,我們給Button添加上適當的約束(左/上/右邊距0,高50)
接下來我們要讓Controller和Button產生聯絡,使得Controller可以通過代碼來引用、修改和響應Button。
首先是在ViewController中建立Button的引用:
使用“Ctrl-拖拽”(長按Ctrl鍵並長按滑鼠左鍵拖拽)Storyboard上的Button到代碼中。
Storyboard上UI控制項的引用稱為“Outlet”,即Connection所對應的選項。
Type選擇UIButton,Storage選擇Weak,Name可以任意指定,此處我們命名其為“button”,然後點擊Connect。
這時我們看到ViewController多出1個成員變數:button,而這就是Storyboard上對應Button的引用,這樣我們就可以通過代碼來修改Button了。
然後是讓ViewController擷取Button的點擊事件:
如法炮製,使用“Ctrl-拖拽”Storyboard上的Button。Storyboard上UI控制項的點擊事件稱為“Action”,即Connection所對應的選項。
Type選擇UIButton,Event選擇Touch Up Inside,Storage選擇Weak,Name可以任意指定,此處我們命名其為“buttonAction”,然後點擊Connect。
這時我們看到ViewController多出1個成員量函數:buttonAction,而這就是Storyboard上對應Button的點擊事件響應函數,這樣我們就可以通過代碼來響應Button點擊了。
現在我們想讓Button點擊後,改變其內容,即將“Button”改為“俺菜鳥到此一遊”,於是我們在函數buttonAction中添加1行:
button.setTitle("俺菜鳥到此一遊", for: .normal)
上一節 回目錄 下一節
六、APP開發的主角——UIViewController