Да, это так.Но вам нужно потратить немного усилий, чтобы эта сборка была аккуратной.
Сначала я бы предложил создать объект Controller, который имеет два объекта UITableViewController в качестве свойств.
Они будут управлять представлениями таблицы.
Вы можете назначить источник данных и делегата каждому из контроллеров табличного представления.
@ interface TableViewManager: NSObject {UITableViewController * myTableViewController1;UITableViewController * myTableViewController2;}
@ свойство (неатомное, сохраняемое) UITableViewController * myTableViewController1;@property (nonatomic, retain) UITableViewController * myTableViewController2;
// Они будут реализованы вручную для делегирования соответствующему TableVC @property (nonatomic, assign) id myTableViewDelegate1;@property (nonatomic, assign) id myTableViewDelegate2;@property (nonatomic, assign) id myTableViewDataSource1;@property (nonatomic, assign) id myTableViewDataSource2;
@ end
@ реализация
@ synthesize myTableViewController1, myTableViewController2;
(id) init {if ((self = [super init])) {// на самом деле вы можете перенести эти строки в кончик, определив UITableViewController-подобный объект.self.myTableViewController1 = [UITableViewController alloc] initWithStyle: ITableViewStylePlain];self.myTableViewController1 = [UITableViewController alloc] initWithStyle: ITableViewStylePlain];}
return self;}
// Пример для 1 установщика, остальные свойства присвоения будут похожи - (void) setMyTableViewDelegate1: (id) aDelegate {self.myTableViewController1.delegate = aDelegate;}
(void) dealloc {self.myTableViewDelegate1 = nil;self.myTableViewDelegate2 = nil;self.myTableViewDataSource1 = nil;self.myTableViewDataSource2 = nil;
self.myTableViewController1 = nil;self.myTableViewController2 = nil;
[super dealloc];}
@ end
После того, как этот класс был инициализирован, вы можете назначить tableViews из каждого контроллера табличного представления вашему UIView, применив сообщение addSubview:.
У вас есть преимущество чистой структуры и никаких проблем с раздутыми классами.
Если вы хотите и / или нуждаетесь в этом, вы можете определить свой собственный класс UITableViewController и изменить его, например, в соответствии со своими потребностями.что он использует пользовательскую производную UITableView.