MVC之间如何通信
来源:互联网 发布:淘宝旺铺有什么用 编辑:程序博客网 时间:2024/06/06 18:37
ontroller->model 完全允许。因为controller 要问model如何在屏幕展现内容。
controller->view 完全允许 。 通讯属性outlet,在controller里创建outlets传输到view中。
model---view 之间永远不会通讯。因为model和界面没有关系。view是要重用的,model和view关联,当model改变后,view得重写。
view->controller 通过 target action这个结构来通讯。controller自己画了个 target(目标) ,然后把action(动作)交给view。当view发生一些事情,比如按钮被按下,它把action 发送到target,这时候controller就知道了。view 和controller还有别的通讯机制,比如view要告诉controller发生什么事情 ,将要发生什么事情,或询问是否允许,用到了will did should 。controller把自己设置成委托,用协议来完成委托。来回应will,did,should。这时候,view 还是不知道回应的controller是哪个类。
记住:views 不拥有它们展示的数据。
那view如何获取数据呢?
通过协议获取,delegation 方法,比如data at , count.
数据源的delegation永远是controller,不可能是model。
三大阵营的工作流程是这样的:controller去model那取数据,告诉view展现数据在屏幕上。即使只有一行代码,也得有controller来参与,不能坏了规矩。
model不能主动勾搭controller,那model数据有变化了,那怎么让controller知道呢?Notification 或KVO机制。当model数据改变,它就广播,controller就收到了。
controller->view 完全允许 。 通讯属性outlet,在controller里创建outlets传输到view中。
model---view 之间永远不会通讯。因为model和界面没有关系。view是要重用的,model和view关联,当model改变后,view得重写。
view->controller 通过 target action这个结构来通讯。controller自己画了个 target(目标) ,然后把action(动作)交给view。当view发生一些事情,比如按钮被按下,它把action 发送到target,这时候controller就知道了。view 和controller还有别的通讯机制,比如view要告诉controller发生什么事情 ,将要发生什么事情,或询问是否允许,用到了will did should 。controller把自己设置成委托,用协议来完成委托。来回应will,did,should。这时候,view 还是不知道回应的controller是哪个类。
记住:views 不拥有它们展示的数据。
那view如何获取数据呢?
通过协议获取,delegation 方法,比如data at , count.
数据源的delegation永远是controller,不可能是model。
三大阵营的工作流程是这样的:controller去model那取数据,告诉view展现数据在屏幕上。即使只有一行代码,也得有controller来参与,不能坏了规矩。
model不能主动勾搭controller,那model数据有变化了,那怎么让controller知道呢?Notification 或KVO机制。当model数据改变,它就广播,controller就收到了。
0 0
- MVC之间如何通信
- WebPart之间如何通信
- 进程之间如何通信
- java 线程之间如何通信
- 如何在iframe之间通信
- iOS App之间如何通信
- Angular 组件之间如何通信?
- 两个项目之间如何通信
- 如何建立多线程之间的消息通信
- activity和service之间如何进行通信?
- 多个线程之间如何进行通信
- 网络中进程之间如何通信
- Android中的Fragment之间如何通信
- 多个线程之间如何进行通信
- 网络中进程之间如何通信
- 请问在两个程序之间如何通信?
- 多个线程之间如何进行通信
- Angular 2 组件之间如何通信?
- ORA-01578 ORA-01110 问题解决(这个是在没有rman备份的情况下)
- C#专题一:登陆界面的基本实现
- scuec 1003
- 使用指针容器后请销毁指针
- c++ const限定符的使用
- MVC之间如何通信
- C++中的long long和__int64类型
- DownloadManager
- Java面试宝典2013版(超长版)
- 题目1189:还是约瑟夫环
- 13-14寒假作业9
- 给VM VirtualBox的Linux虚拟机添加虚拟硬盘
- 【prim】poj 2485
- 【UNIX高级环境编程】3.信号