(iphone) UIViewController, имеющий UITableViewController в качестве члена, чтобы сделать tableView как его подпредставление? - PullRequest
0 голосов
/ 04 апреля 2011

Я хочу, чтобы представление viewController имело tableView в качестве своего подпредставления.

Поскольку мне нужно переопределить некоторые методы tableViewController, такие как

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
- (UITableViewCell*) tableView: (UITableView*) tableView cellForRowAtIndexPath: (NSIndexPath*) indexPath
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

, у меня был свой viewController (custom) TableViewController вместо tableView.

Затем я делаю что-то вроде

UIView* holderView = [[[UIView alloc] initWithFrame:] autorelease];
[self.view addSubview holderView]; //self is viewController
[holderView addSubview: tableViewController.view];
.. change tableViewController.view.backgroundColor so on..

, затем tableView волшебным образом (?) Заполняет holderView и работает нормально.

Но яЧувствуете, что это довольно нерегулярно, и задаетесь вопросом, как лучше использовать настраиваемое табличное представление в качестве подпредставления?

Спасибо

1 Ответ

0 голосов
/ 04 апреля 2011

То, что я сделал (и, как я полагаю, делается чаще), это сделал viewController делегатом таблицы. Это означает, что контроллер имеет такие функции, как viewDidLoad, но ему также нужно число numberOfRowsInSection, cellForRowAtIndexPath, и так далее При установке делегата таблицы на viewController (self) это означает, что таблица будет искать информацию, необходимую для построения таблицы на этом делегате. Делегат содержит эти табличные функции.

РЕДАКТИРОВАТЬ: Я только что увидел префикс «пользовательский» на вашем столе. В этом случае я все еще использовал бы мой описанный метод, но вместо этого использовал бы CustomCells.

...