ios中的MVC設計模式

1、MVC概念ios

MVC全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟件設計典範。MVC的目的是將M和V的實現代碼分離,從而使同一個程序可使用不一樣的表現形式。C存在的目的則是確保M和V的同步,一旦M改變,V應該同步更新。ide

 2、MVC間通訊設計

一、Model和View永遠不能相互通訊,只能經過Controller傳遞。事件

二、Controller能夠直接與Model對話(讀寫調用Model),Model經過Notification和KVO機制與Controller間接通訊。get

三、Controller能夠直接與View對話(經過outlet,直接操做View,outlet直接對應到View中的控件),View經過 action向Controller報告事件的發生(如用戶Touch我了)。Controller是View的直接數據源(數據極可能是 Controller從Model中取得的)。View能夠經過delegate與Controller進行通訊。同步

下面根據ios的MVC示意圖再補充說說:it

MVC示意圖

1.  圖中,綠色的箭頭表示直接引用。 對View 的直接引用體如今 IBOutlet 上。 當引用一個View 時,好比Button。 須要在ViewControllerio

中聲明一個  IBOutlet  UIButton * btn;軟件

2. 而後,咱們看View 是怎麼向 Controller 通訊的。對於這個,  iOS 有三種常見的模式:model

      設置View對應的Action Target。如設置UIButton的Touch up inside的Action Target。

      設置View的Delegate,如UIAlertViewDelegate, UIActionSheetDelegate,UITextFieldDelegate等。

      設置View的data source, 如UITableViewDataSource。

      經過以上三種模式,View既能向Controller通訊,又無需知道具體的Controller是誰,這樣,View 就與Controller解耦了。

相關文章
相關標籤/搜索