模型,视图,控制器混淆

时间:2011-09-21 14:40:29

标签: iphone objective-c ios xcode

  

可能重复:
  Understanding Model-View-Controller

我有一个关于如何划分我的代码的一般编程问题,通常(我正试图摆脱这个)我只是在viewController中编写它,在视图控制器中有很多很多代码。但现在我已经回顾了MVC的一些信息,但我有一些问题。

我的问题

主要是,如果我是一个视图控制器(持有一个模型和一个视图),并且在模型中我运行一个方法为视图找出一个数字显示,所以只是一个简单的int,视图将采取并显示在屏幕。为了让我的模型告诉我的观点,我应该直接从模型---->视图。或者我应该将数据返回给控制器,然后将其发送到视图吗?

最后,如果我需要将数据发送回控制器,我该怎么办呢,因为我认为模型不应该知道控制器,反之亦然。

很抱歉这个冗长的问题。感谢你的帮助。

2 个答案:

答案 0 :(得分:0)

网上有很多关于此的信息。来自Wikipedia

  

虽然MVC有不同的风格,但控制流程一般都是   如下:

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

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

  6.   
  7. 用户界面等待进一步的用户交互   重启控制流程周期。

  8.         

    MVC的目标是通过解耦模型和视图来减少   建筑设计的复杂性,增加灵活性和   代码的可维护性。 MVC也被用于简化设计   自主和自管系统

答案 1 :(得分:0)

只要你不使用绑定,就可以简单地为你的db-operations创建模型类,为你的interfaceobjects和一个控制器提供视图,从前面检索数据并将它放在后者中你就是结构合理。至于回来的方式:你应用程序所做的一切,都是由一种或另一种事件触发的。根据这些,您必须从您的界面( - > outlet)获取适当的值。对于其他一切,你实际上还需要进一步研究控制器和绑定。