(iphone)UIViewController使用UITableViewController作为成员使tableView成为子视图?

时间:2011-04-04 08:44:08

标签: iphone uiviewcontroller tableview

我希望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拥有(自定义)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 :(得分:0)

我所做的(并且更常见的是我相信),也是使viewController成为表的委托。这意味着控制器具有viewDidLoad等功能,但它还需要numberOfRowsInSection,cellForRowAtIndexPath等等。 将表的委托设置为viewController(self)时,表示该表将查找在该委托上构建表所需的信息。委托包含那些表函数。

编辑:我刚看到你桌子上的'自定义'前缀。在这种情况下,我仍然使用我描述的方法,但使用CustomCells。