在我的应用中,我想要一个具有不同单元结构的tableview,具体取决于加载到其中的数据类别[我有不同的类别,如视频,编辑等不同的数据结构,如视频有一个标签,编辑有3个标签等]。我可以根据来自xml解析器的数据加载不同的nib文件。
现在,当点击单元格时,我想在新的viewController上显示其详细视图。所以我的问题是是否可以只使用1个viewController显示不同的字段,具体取决于单元格中的数据类别。或者我是否需要为每个类别创建不同的viewControllers?
答案 0 :(得分:1)
这取决于您在每个类别中拥有的数据类型。如果每个类别中的数据格式不同并且您已经知道它,请设计viewControllers,以便它们直接读取数据并在必要时显示它。 viewController本身应该处理显示逻辑。
另一方面,如果所有类别都属于同一类型,则可以创建同一viewController的多个实例,使用它们并根据需要释放它们。
在您的情况下,听起来第二个选项可能是首选。
编辑:明智的做法是使用不同的viewControllers子类来记住设计模式 - “关闭以进行修改并打开扩展”。
答案 1 :(得分:1)
您可以编写代码来执行您喜欢的任何操作。但是假设您要显示的元素不同,使用相同的对象来显示多个对象类型将不被视为好习惯。
在OOP中,我们通常会创建不同的类来简化代码,并使用各种策略共享代码,其中子类化似乎适用于这种情况。
含义:创建一个类来处理适用于您想要显示的所有对象类型的一般情况,并创建子类以了解每种类型的特定要求。
答案 2 :(得分:1)
您可以使用单一视图控制器。您只需要提供要在该视图控制器中显示的数据。
但是为不同的功能保留单独的控制器将使您的代码非常整洁且易于处理。所以如果你保留单独的控制器来处理数据会更好。