【发布时间】:2011-03-16 09:00:14
【问题描述】:
对不起,如果标题听起来令人困惑,但我想不出更好的办法。
基本上,我有一个视图控制器,它管理一个分页滚动视图,该视图显示从数据库中获取的多个图像。我是 MVC 的新手,我试图以最好的方式按照这种模式编写代码(我的经验仅仅是基于查看其他人的代码并了解 Apple 的类是如何工作的,因此它可能存在缺陷;如果您能告诉我是否是的话,我将不胜感激)。
这就是我所做的:我有一个自定义视图类,它包含一个UIScrollView,并有两个公共属性:dataSource 和delegate。数据源对象必须符合我定义的协议;它返回图像的数量和图像本身。当所选页面发生更改时,代理会收到通知。
我希望我做对了。在任何情况下它都有效;我能够毫无问题地重新实现数据源(如果需要),并且提供数据的代码与显示它的代码是分开的。
但是现在我有一个问题:我需要能够用一个类似于 CoverFlow 的视图替换分页滚动视图,并尽可能少地复制代码。我知道必须有更好的方法来实现这一点,而不必使用此 CoverFlow 视图创建另一个视图控制器类。这两个视图类具有相似的方法并以相似的方式工作,因此使用相同的视图控制器代码而不是复制它是有意义的。
也许我可以编写一个带有泛型方法的抽象类并编写它的两个实现,一个用于滚动视图,一个用于 CoverFlow 视图,然后根据传递给它的参数在控制器中实例化这两者之一.这是实现这一目标的最佳方式吗?
我希望这不会太令人困惑,并且我的方法没有太多缺陷。谢谢。
【问题讨论】:
标签: iphone model-view-controller