標籤:http io os 使用 ar 資料 sp cti 代碼
一、MVC概念
MVC全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟體設計典範。MVC的目的是將M和V的實現代碼分離,從而使同一個程式可以使用不同的表現形式。C存在的目的則是確保M和V的同步,一旦M改變,V應該同步更新。
二、MVC間通訊
1、Model和View永遠不能相互連信,只能通過Controller傳遞。
2、Controller可以直接與Model對話(讀寫調用Model),Model通過Notification和KVO機制與Controller間接通訊。
3、Controller可以直接與View對話(通過outlet,直接操作View,outlet直接對應到View中的控制項),View通過 action向Controller報告事件的發生(如使用者Touch我了)。Controller是View的直接資料來源(資料很可能是 Controller從Model中取得的)。View可以通過delegate與Controller進行通訊。
下面根據ios的MVC再補充說說:
1. 圖中,綠色的箭頭表示直接引用。 對View 的直接引用體現在 IBOutlet 上。 當引用一個View 時,比如Button。 需要在ViewController
中聲明一個 IBOutlet UIButton * btn;
2. 然後,我們看View 是怎麼向 Controller 通訊的。對於這個, iOS 有三種常見的模式:
設定View對應的Action Target。如設定UIButton的Touch up inside的Action Target。
設定View的Delegate,如UIAlertViewDelegate, UIActionSheetDelegate,UITextFieldDelegate等。
設定View的data source, 如UITableViewDataSource。
通過以上三種模式,View既能向Controller通訊,又無需知道具體的Controller是誰,這樣,View 就與Controller解耦了。
ios中的MVC設計模式