我编写的应用程序具有许多表格视图,并且根据许多因素,这些表格视图可能会显示某些部分并隐藏其他部分。
例如,我有“活动”对象和“存档”对象。当用户选择一个用户时,他将被带到同一个表视图,但如果该对象处于活动状态,则会显示某些部分,如果已存档,则会显示其他部分。现在我正在考虑为这些对象添加其他属性,比如“完成”,除了“活动”和“存档”。问题是该表视图控制器的代码变得越来越复杂,试图根据所选对象的每个属性确定要显示或隐藏的部分。所以我正在考虑使用不同的表视图,一个用于存档对象,另一个用于活动对象,另一个用于完成对象。但是虽然它们有许多不同的部分,但也有一些共同的部分应该显示给所有这些对象。那么在这样的情况下我该怎么办?我应该使用具有三个不同视图控制器的三个不同的表视图,一个用于我的对象的每个属性(我甚至可以添加更多!),并且对于它们之间常见的部分重复相同的代码多次,或者我应该保留使用一个视图控制器并使其代码越来越复杂,试图确定要显示或隐藏的部分?或者我应该在两者之间做些什么?或完全不同的东西?
提前致谢,
丹尼尔
编辑:我认为这不是一个意见问题,但显然是这样。但是,必须有一些客观的事情要考虑。例如,在故事板中有许多不必要的场景有什么影响?是否可以忽略不计,可以为每个小变化创建一个新场景,而不是在同一个视图控制器中以编程方式进行操作?
答案 0 :(得分:1)
在我看来,你应该有3个独立的视图控制器。
在开发和优化您的应用时,您肯定会注意到您在很多地方重复了代码。当您注意到重复的代码时,请尝试将其抽象到模型层中,并从View / Controller层中抽象出来。
如果你到达了3个控制器几乎完全相同的点,那么你可以将它们组合起来。
对此没有明确的正确或错误答案;这是一个你将学会认识和解决经验的问题。
祝你的应用好运! : - )