【问题标题】:Should code to build views programmatically be put in UIView or UIViewController?以编程方式构建视图的代码是否应该放在 UIView 或 UIViewController 中?
【发布时间】:2011-12-01 02:43:06
【问题描述】:

我正在构建一个具有以编程方式构建的视图的应用。也就是说,我正在从数据库中获取数据,其中包含有关视图中按钮的数量、大小和位置等信息。在某些时候,会有代码使用这些数据来实例化新的子视图并设置它们。我的问题是,这段代码应该去哪里?视图、viewController 或其他地方。在我看来,这是典型 MVC 原则的灰色地带。视图是否应该接受数据,然后知道如何使用这些数据绘制自己?或者,一个 viewController 负责构建所有不同的子视图,然后简单地将它们添加到视图中。

想法?谢谢。

【问题讨论】:

    标签: ios model-view-controller uiview uiviewcontroller


    【解决方案1】:

    我同意这是一个灰色地带。就个人而言,我会根据需要操纵的数据还是显示该数据来做出这样的决定。例如,显示日期的视图控制器可能需要将各种日期(即,表示为 DMY 结构的数据与表示为从某个参考时间开始的秒数表示的日期)处理为适合视图的格式,而视图它本身可能只能接收一种特定格式(即 DMY)并负责显示它。这就是我倾向于在两者之间划清界限的那种——显示数据(视图)与解释数据(控制器)。

    在您重新配置视图的示例中,我可能会将大部分逻辑放入控制器中,因为它涉及解释数据。我会设计视图以接受配置细节,例如要显示多少项目以及要使用哪种布局格式(想想 UITableViewCell),但我会设计控制器来解释数据以决定有多少项目和放什么在视图的各个字段中(如 UITableViewController)。

    【讨论】:

      猜你喜欢
      • 2017-07-02
      • 2011-06-08
      • 1970-01-01
      • 1970-01-01
      • 2011-04-10
      • 2010-11-03
      • 1970-01-01
      • 2012-06-18
      • 1970-01-01
      相关资源
      最近更新 更多