我已经继承了一个现有的项目,现在我正在看一个有一对UITableViews的场景,每个场景都有自己的控制器......我们已经确定如果它们是包含两个部分的单个表,那将是更好的用户体验。数据源完全不同,但我认为这是有道理的,因为用户可能会与数据进行交互。
无论如何,现在我已经拥有了FooTableViewController,并且我已经获得了BarTableViewController,我需要提供一个FooAndBarTableViewController。我能想到的最好的解决方案是从FooTableViewController继承,并使用以下内容覆盖一堆方法:
-(Yada*) someMethod:(BlahBlah *)blahBlah {
if( section == 0 ) {
return [super someMethod:blahBlah]
}
else {
//copy-paste stuff from BarTableViewController
}
}
其中,只要BarTableViewController不是非常复杂,看起来并不是太糟糕。但仍然有一些重复你自己在这里,我并不疯狂。
有人有更好的想法吗?
答案 0 :(得分:0)
我没有提到的一个重要细节是要合并的两个表有不同的实体。这使整个混乱变得更加困难。 可以使用单个UITableViewController执行此操作,但它使得依赖于例如NSFetchedResultsControllers等。
但是我终于找到了一个简单的方法":将两个表放在UIScrollView中,并将它们调整为内容高度。使用节标题会丢失一些不错的行为,但是对于节省我的时间,它是值得的。