[入坑iOS系列]MVC这点事

啥是mvc呢

MVC是三个单词的首字母缩写,它们是Model(模型)、View(视图)和Controller(控制).
Model = 你的程序是什么
Controller = 如何将你的model展现给用户
View = 在屏幕上你能看到啥

MVC之间咋交流呢

先整张图吧


mvc.png

(图片来源于斯坦福ios8公开课白胡子老头)

1首先,Model和View永远不能相互通信,只能通过Controller传递。
2Controller可以直接与Model对话(读写调用Model,Model通过Notification和KVO机制与Controller间接通信)。
3Controller可以直接与View对话(通过outlet,直接操作View,outlet直接对应到View中的控件),View通过 action向Controller报告事件的发生。Controller是View的直接数据源(数据很可能是 Controller从Model中取得的)。Controller是View的代理(delegate),以同步View与Controller,delegate是一组协议,表示程序将要或者已经处于某种状态时,来调整View,以对用户有个交代。

完事了

Controller to Model:API
Controller to View:Outlet
View to Controller:Target-action, Delegate,Datasource
Model to Controller:Notification,KVO

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容