码迷,mamicode.com
首页 > 移动开发 > 详细

ios中的MVC设计模式

时间:2014-09-17 23:02:43      阅读:220      评论:0      收藏:0      [点我收藏+]

标签: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示意图再补充说说:

bubuko.com,布布扣

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设计模式

标签:http   io   os   使用   ar   数据   sp   cti   代码   

原文地址:http://www.cnblogs.com/cstudent/p/3978129.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!