六、APP開發的主角——UIViewController

來源:互聯網
上載者:User

標籤:點擊事件   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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.