2011-09-21 103 views
1

可能重复:
Understanding Model-View-Controller模型,视图,控制器混乱

我对如何瓜分我的代码,通常是一个普通的编程问题(我试图让远离这一点)我只是把它写在viewController中,在视图控制器中有很多很多的代码。但是现在我已经回顾了关于MVC的一些信息,但是我有一些问题。

我的问题

主要是,如果我的图控制器(拿着模型和视图),并在模型中我运行的方法计算出的视图中的号码显示,所以只是简单INT该视图将在屏幕上显示并显示。为了让我的模型告诉我的观点,我应该直接从模型---->视图去做。还是应该将数据返回给控制器,然后将其发送到视图?最后,如果我需要将数据发送回控制器,我该怎么做,因为我认为模型应该不知道控制器,反之亦然。

对不起,冗长的问题。感谢你的帮助。

+0

按,因为我知道我的理解模式 - *您的数据库* 查看 - *你的布局,您创建一个使用笔尖或语法PRO * 控制器 - *你的UIViewController * –

+0

既然你标记你的问题的iOS,我认为这是一个非常好的观点@bzlm指的问题。 Apple的MVC与通常意义上的不同之处有所不同。 –

回答

0

网络上有很多关于此的信息。从Wikipedia

虽然MVC有不同的调味剂,控制流程通常是 如下:

  1. 用户以某种方式在用户界面进行交互(为 例如,通过按下鼠标按钮)。
  2. 控制器通知模型的用户行为,可能 导致模型的状态发生变化。 (例如, 控制器更新该用户的购物车中。)

  3. 视图查询模型,以便产生适当的用户界面 (例如,图中列出了购物车的内容)。 视图从模型中获取它自己的数据。在一些实施方式中,控制器可以向视图发出通用指令以呈现 本身。在其他情况下,视图会自动通过 状态更改(观察者)的模型通知需要更新屏幕。

  4. 用户界面等待进一步的用户交互,其中 重新启动控制流周期。

MVC的目标是,通过分离模型和视图,以减少建筑设计 复杂性,提高灵活性和可维护性 的代码。MVC也被用来简化设计自主的 和自我管理的系统

0

只要你不使用绑定,您可以只需模型类你的数据库的操作,视图为您interfaceobjects和一个控制器,它可以从早期检索数据并将其放入后者中,并且结构合理。至于退路:应用程序所做的一切都是由一种事件或另一种事件触发的。根据这些,你必须从你的界面( - >网点)获取适当的值。对于其他任何事情,你实际上必须做一些进一步的研究控制器和绑定。