Я обычно использую другой подход: я предпочитаю использовать разные источники данных для одного экземпляра tableView и затем переключаться между ними (обычно выбирая другой индекс в segmentedControl).
Опять же, просто чтобы дать вам образец:
MyTableViewController: UITableViewController {
...
id<UITableViewDataSource> dataSource;
}
затем в файле реализации:
[...]
dataSourceIndex = indexValue;
NSString *currentClassName = [classNameModels objectAtIndex:indexValue];
Class currentClass = [[NSBundle mainBundle] classNamed:currentClassName];
dataSource = [[currentClass alloc] initWithController:self];
[self.tableView reloadData];
Привет.