使用不同用例构建视图控制器的最佳方法?

时间:2016-02-22 20:09:57

标签: ios swift

我有一个UITableViewController,我可以通过多种不同的方式使用它:

  1. CellX家长内显示多个自定义单元格(让我们调用这些UIPageViewController)。
  2. 显示单个CellX单元格,其中包含自己的导航栏标题。
  3. 显示一组不同的自定义单元格(CellY)。
  4. 显示多个CellX单元格但使用不同的数据。
  5. 目前,我设置了boolean个变量,用于标识UITableViewController正在其中一个用例中使用,并且有相当多的if个语句控制UITableViewController内发生的事情。然而,这似乎是一种糟糕的编码方式,还有更好的方法吗?

3 个答案:

答案 0 :(得分:1)

您可以创建一些枚举类型来确定您的上下文,然后在switch语句中填充每个案例的视图(并将这些案例放在单独的方法中,以便更容易理解)。 Switch语句不仅更具可读性,而且性能更好。 另一种方法是,如果您的上下文完全不同,则创建几个不同的viewContollers。

答案 1 :(得分:1)

不知道您的完整设计,但是根据您的设置,我会使用枚举和案例陈述来使您的代码更易于理解和维护。

答案 2 :(得分:1)

有几种方法可以实现,我建议对视图的所有可能状态使用枚举,然后在相关的表方法中打开它。如下所示:

enum TableState {

  case Full
  case Filtered
  case Advanced
  case SecondView
}

var tableState = TableState.Full

switch tableState {

  case .Full: //setup table
  case .Filtered
  case .Advanced
  case .SecondView
}