将两个UITableViewControllers组合成一个的简单方法,每个都是它自己的部分?

时间:2014-11-05 17:20:19

标签: ios objective-c uitableview

我已经继承了一个现有的项目,现在我正在看一个有一对UITableViews的场景,每个场景都有自己的控制器......我们已经确定如果它们是包含两个部分的单个表,那将是更好的用户体验。数据源完全不同,但我认为这是有道理的,因为用户可能会与数据进行交互。

无论如何,现在我已经拥有了FooTableViewController,并且我已经获得了BarTableViewController,我需要提供一个FooAndBarTableViewController。我能想到的最好的解决方案是从FooTableViewController继承,并使用以下内容覆盖一堆方法:

-(Yada*) someMethod:(BlahBlah *)blahBlah {
  if( section == 0 ) {
    return [super someMethod:blahBlah]
  }
  else {
    //copy-paste stuff from BarTableViewController
  }
}

其中,只要BarTableViewController不是非常复杂,看起来并不是太糟糕。但仍然有一些重复你自己在这里,我并不疯狂。

有人有更好的想法吗?

1 个答案:

答案 0 :(得分:0)

我没有提到的一个重要细节是要合并的两个表有不同的实体。这使整个混乱变得更加困难。 可以使用单个UITableViewController执行此操作,但它使得依赖于例如NSFetchedResultsControllers等。

但是我终于找到了一个简单的方法":将两个表放在UIScrollView中,并将它们调整为内容高度。使用节标题会丢失一些不错的行为,但是对于节省我的时间,它是值得的。