2014-11-05 2 views
0

Я унаследовал существующий проект, и прямо сейчас я смотрю сцену, на которой есть пара UITableViews, каждый со своим собственным контроллером ... и мы определили, что это будет лучший пользовательский интерфейс если бы они были одной таблицей с двумя разделами в ней. Источники данных совершенно разные, но я думаю, что это имеет смысл в любом случае из-за того, как пользователь может взаимодействовать с данными.Любой простой способ комбинировать два UITableViewControllers в одном, каждый из которых является его собственным сектором?

ANYWAY, так что теперь у меня есть FooTableViewController, и у меня есть BarTableViewController, и мне нужно придумать FooAndBarTableViewController. Лучшее решение, которое я могу придумать, чтобы наследовать от FooTableViewController, и переопределить кучу методов с чем-то вдоль линий:

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

Который, пока BarTableViewController не чрезвычайно сложна, кажется, не слишком ужасно плохо. Но здесь все еще есть повторение, что я не сумасшедший.

У кого-нибудь есть идеи?

+0

Я действительно не понимаю ситуацию, если честно ... почему бы не использовать один контроллер, который имеет в нем как табличные представления? вы можете по-прежнему реализовывать объекты dataSource каждый в отдельных файлах. – nburk

+0

В конце дня я хочу, чтобы на нем был один UITableView ... с двумя разделами, которые использовались для каждого из них - это их собственный UITableView. – user435779

+1

Вы не можете поместить данные из обоих источников данных в один и тот же объект 'dataSource', который будет служить в качестве' dataSource' для вашего нового объединенного представления таблицы? то в ваших методах источника данных вы получите соответствующее значение ... – nburk

ответ

0

Важная деталь, о которой я не упоминал, состоит в том, что две таблицы, которые должны быть объединены, имеют разные сущности. Это еще больше усложняет весь беспорядок. Вы можете использовать с помощью одного UITableViewController, но это делает его намного менее простым, чтобы полагаться на, например. NSFetchedResultsControllers и т. Д.

Но я, наконец, нажал на «простой способ»: поместите обе таблицы в UIScrollView и определите их размер своей высоты. Вы теряете некоторое приятное поведение с заголовками разделов, но за то время, которое это спасет меня, это того стоит.

Смежные вопросы