ИМО самым чистым решением было бы иметь один контроллер для каждого просмотра таблицы.
Если вы используете один контроллер для n табличного просмотра, вам придется использовать if-statemenst во многих местах, в
– numberOfSectionsInTableView:
– tableView:numberOfRowsInSection:
– tableView:titleForHeaderInSection:
- …
В основном во всех методах UITableViewDatasource-Protocol, которые вам необходимо реализовать.
Так что, если вам нужно что-то изменить, вы должны изменить это во многих местах.
Если вы используете один класс контроллера для одного просмотра таблицы, вам вообще не придется проверять.
- написать класс контроллера для каждого просмотра таблицы, сделать его соответствующим протоколу
UITableViewDatasource
- реализовать методы протокола, которые вам понадобятся.не менее
– numberOfSectionsInTableView:
, – tableView:numberOfRowsInSection:
, – tableView:cellForRowAtIndexPath:
- вызов
-setDataSource:
для каждого представления таблицы для объекта соответствующего класса контроллера
Я написал пример кода: https://github.com/vikingosegundo/my-programming-examples/tree/master/TwoTableViews
TwoTableViewsViewController.m
- (void)viewDidLoad {
[super viewDidLoad];
if (firstController == nil) {
firstController = [[FirstTVContoller alloc] init];
}
if (secondController == nil) {
secondController = [[SecondTVController alloc] init];
}
[firstTable setDataSource:firstController];
[secondTable setDataSource:secondController];
[firstTable setDelegate:firstController];
[secondTable setDelegate:secondController];
firstController.view = firstController.tableView;
secondController.view = secondController.tableView;
}