Обычно ваш контроллер представления контролирует tableView.Я предполагаю, что вы пытаетесь вписать туда несколько табличных представлений и логику для каждого.Вместо этого просто создайте контроллеры для каждой таблицы.
Сначала создайте контроллер основного представления, используя шаблон UIViewController (не используйте TableViewController).Используйте XIB и добавьте туда элемент TableView, ИЛИ создайте экземпляр UITableView, используя код.
Теперь создайте класс, соответствующий делегату и источнику данных, протоколам.Это не должно быть контроллером представления.Пример:
// MiniTVC.h
@interface MiniTVC : NSObject <UITableViewDelegate, UITableViewDataSource>
@property (nonatomic, retain) IBOutlet UITableView *tableView;
@property (nonatomic, retain) NSArray *array;
-(id) initWithTableView:(UITableView*)tableView array:(NSArray*)array;
@end
и реализовать методы делегата и источника данных как обычно.Вам необходимо как минимум следующее:
tableView:heightForRowAtIndexPath:
numberOfSectionsInTableView:
tableView:numberOfRowsInSection:
tableView:cellForRowAtIndexPath:
Затем, возвращаясь к контроллеру основного представления, вы создаете (или подключаете из конструктора интерфейса с помощью IBOutlets) tableView и задаете его делегат и источник данных для вашего класса MiniTVC, например:
// sample table created by code
CGRect frame = CGRectMake(50,50,100,100);
UITableView *tableView = [[UITableView alloc] initWithFrame:frame]
[self.view addSubView:tableView];
// set the datasource/delegate
MiniTVC *miniTVC = [[MiniTVC alloc] initWithTableView:self.tableView array:someArray];
tableView.dataSource = self.miniTVC;
tableView.delegate = self.miniTVC;
Youможет повторить этот процесс, создав еще один UITableView + MiniTVC из пользовательского UITableViewCell.Или вы можете заставить UITableViewCell соответствовать делегату / источнику данных таблицы и реализовать там методы.
Кстати, создание табличных представлений внутри табличных представлений немного необычно.Поскольку оба они являются подклассами UIViewScroll, это может привести к неожиданному поведению, хотя я сам не пробовал.