我在UITableView
中使用了两个UIViewController
,如何在两个tableviews中填充行和单元格?当我给第二个tableview时,它说明了部分中行数等的重复声明。
答案 0 :(得分:17)
这就是dataSource / delegate方法具有tableView
参数的原因。根据其值,您可以返回不同的数字/单元格/...
- (void)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
if (tableView == _myTableViewOutlet1)
return 10;
else
return 20;
}
答案 1 :(得分:2)
您的所有UITableViewDelegate
和UITableViewDatasource
方法只会实施一次。您只需要检查调用该方法的表视图。
if (tableView == tblView1) {
//Implementation for first tableView
}
else {
//Implementation for second tableView
}
这将适用于所有TableView的委托和数据源方法,因为tableView
是所有方法中的通用参数
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {}
- (UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {}
This Link也有您问题的解决方案。
希望这有帮助
答案 2 :(得分:2)
请看一下。
首先在界面构建器中创建两个tableview,然后连接两个IBOutlet变量,并为两个tableviews设置委托和数据源。
在接口文件
中 -IBOutlet UITableView *tableView1;
-IBOutlet UITableView *tableView2;
在实施文件
中 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
if (tableView==tableView1)
{
return 1;
}
else
{
return 2;
}
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
if (tableView==tableView1)
{
return 3;
}
else
{
if (section==0)
{
return 2;
}
else
{
return 3;
}
}
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
if (tableView==tableView1)
{
//cell for first table
}
else
{
//cell for second table
}
return cell;
}
使用此代码。希望帮助
答案 3 :(得分:1)
可以在这里查看参考代码:http://github.com/vikingosegundo/my-programming-examples
请同时参阅此页:2 tableview on a single view