MVC间的通信(附代码)
来源:互联网 发布:js中的选择器 编辑:程序博客网 时间:2024/06/06 21:06
首先我们解释一下MVC分别是什么
M(Model)
应用程序的核心,用于处理应用程序数据逻辑部分,例如JSON解析的模型类
V(View)
处理应用程序数据的显示,也是是视图层
通常依据Model创建
C(Controller)
处理用户的交互,控制器层
从视图读取数据,控制用户输入,并向模型发送数据
下面根据斯坦福的一张截图课件我们来分析一下,MVC间的通信
总结
C对M:
通过API
参考代码:
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ Message *m = self.messageArr [indexPath.row]; return [m height]+105;}
C对V:
通过outlet
参考代码:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { MessageCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath]; cell.message = self.messageArr[indexPath.row]; return cell;}
V对C:
Target-action:为View中的某个按钮添加一个监听事件,当按钮被点击时就执行相应的处理。
Delegate:比如tableview中的
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;
Datasource:比如tableview中的
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView;
M对C:
M对C通信可以采用Notification&KVO,可以参考另一篇微博的Demo来理解
http://blog.csdn.net/lee727n/article/details/71513609
0 0
- MVC间的通信(附代码)
- 用java实现简单的网络通信,相当于一个最简单的控制台qq(附代码)
- MVC入门——经典MVC登录实例详解--附完整代码
- 多项式除法的实现(附c代码)
- 汉诺塔游戏的设计(附代码)
- 基于C#的通信协议封包(附代码)
- Java的基本特征(附:代码解析)
- 基于C#的通信协议封包(附代码)
- lamp搭建的步骤(附代码)
- mybatis SqlSessionDaoSupport的使用(附代码下载)
- 《C++ Primer》随附代码的使用方法
- 原根的求解证明 附代码
- 基于Windows Socket的安全通信(C++实现,附源码)
- 基于Windows Socket的安全通信(C++实现,附源码)
- mvc下的分页代码
- MVC的一些有用代码
- mybatis注解实现 spring mvc + mybatis+velocity 框架 (附完整项目代码)
- VC实现进程间通信(MailSlot附实例)
- Android中实现SQLite数据库CRUD操作的两种方式
- Promise对象
- JavaWeb 03 HTTP协议
- 高速缓存DNS
- JavaWeb 04 解决中文乱码问题
- MVC间的通信(附代码)
- tensorflow自学之前的bigpicture
- Android应用程序管理系列(一)——管理对象封装概述
- TensorFlow实战
- JavaWeb 05 Web应用路径问题【绝对路径和相对路径】
- LeetCode 16. 3Sum Closest
- [人工智能技术]技术实战札记
- Android应用程序管理系列(二)——PackageManager 包管理者
- KVO&KVC