UITableView在基于视图的应用程序中

时间:2011-03-30 21:46:08

标签: iphone uitableview

我想将一个表添加到已有搜索栏和一些文本的视图中。

如果我创建了一个基于导航的项目,那么我可以使用

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

但我不能在基于视图的应用程序中执行此操作。

我真的不需要多个部分。我该怎么做呢? 感谢

3 个答案:

答案 0 :(得分:0)

要执行此操作,您必须向viewController添加UITableView,然后定义tableview的委托,如:

tableView.delegate = self;
tableView.dataSource = self;

这样,您的表视图将调用您的类来获取其数据,并知道如何呈现它们。这意味着您的方法tableView:numberOfRowsInSection:将被调用。

答案 1 :(得分:0)

您必须创建一个tableView(在代码或Interface Builder中),设置委托和数据源,然后将tableView添加为当前视图的子视图;

因此,如果您以编程方式(而不是Interface Builder)执行此操作,它将类似于:

UITableView *tableView = [[UITableView alloc] initWithFrame:self.view.frame style:UITableViewStylePlain];
tableView.delegate = self;
tableView.dataSource = self;
[self.view addSubView:tableView];

然后你需要实现UITableViewDelegate和UITableViewDataSource协议。

TableView Programming Guide

答案 2 :(得分:0)

您提到的方法是“UITableViewDataSource协议参考”的一部分,并且只与您描述的问题远程相关。您可以通过InterfaceBuilder或通过代码添加tableView(像任何其他视图一样)。在代码中,它看起来像这样:

UITableView* tableView = [[UITableView alloc] init];
tableView.delegate = self;
tableView.dataSource = self;
[self.view addSubview:tableView];

(假设您正在viewController中执行此操作)。 请记住,您需要实施

– tableView:numberOfRowsInSection:

– tableView:cellForRowAtIndexPath:
在你的viewController中使这一切工作(参见UITableViewDataSource Protocol Reference)

如果你还没有,我建议你看一下“Table View Programming Guide for iOS”。