对不起,如果标题听起来令人困惑,但我不能想出更好的东西。实现可以处理两种不同视图类型的视图控制器
基本上我有一个视图控制器,管理一个分页滚动视图,它显示从数据库中提取的几个图像。我是MVC的新手,我尝试以最好的方式按照这种模式编写我的代码(我的经验仅仅基于查看其他人的代码并理解Apple的类如何工作,因此可能有缺陷;如果你能告诉我,我会很感激的)。
这就是我所做的:我有一个自定义视图类,其中包含UIScrollView
,并且有两个公共属性:dataSource
和delegate
。数据源对象必须符合我定义的协议;它会返回图像数量和图像本身。选定页面更改时,代表会收到通知。
我希望我说得对。无论如何,它的工作原理;我可以在没有任何问题的情况下重新实现数据源(如果需要),并将提供数据的代码与显示数据的代码分开。
但是现在我遇到了一个问题:我需要能够用尽可能少的代码复制的类似CoverFlow的视图替换分页滚动视图。我知道必须有更好的方法来实现这一点,而无需使用此CoverFlow视图创建另一个视图控制器类。这两个视图类具有相似的方法,并以类似的方式工作,所以使用相同的视图控制器代码而不是重复它是有意义的。
也许我可以用泛型方法编写一个抽象类并编写它的两个实现,一个用于滚动视图,另一个用于CoverFlow视图,然后基于传递给参数的参数在控制器中实例化其中的一个它。这是达到这个目标的最好方法吗?
我希望这不是太混乱,我的方法没有太多缺陷。谢谢。