0

在 Cocoa MVC 采用中,View 对 Model 一无所知,如下图所示:

Cocoa MVC 交互图

但是考虑这个例子:
我的模型中有Item类,我想要它的视觉表示。对我来说最明显的是ItemView类,它是用Item初始化的。
所以,通过这种方式,我违反了 Cocoa MVC 规则并且对此感到不舒服。但是,我也感觉不舒服,也没有像ItemView这样的课程。最实用的解决方案是什么?

4

1 回答 1

0

如果你真的关心 MVC,那么在你的控制器中定义一个方法怎么样:

- (UIView*)itemViewForItem:(Item*)item;

哪个负责创建和“填充”您的 ItemView?

然后,您的主控制器类将充当您的主视图和所有ItemViews您所拥有的控制器。

另一种方法是给每个 ItemView 自己的 ItemViewController。这很好,如果您的控制器/视图有任何复杂性,IMO 也是最好的方法。这样做的缺点是仅在 iOS>5 上支持处理控制器容器。

于 2013-01-21T18:28:23.117 回答