我在for循环中创建tableview。循环一次后,tableview委托/数据源方法需要调用。但是这里的方法(委托/数据源)在完成循环后调用,如何在tableviews中加载数据
我在基于scrollview的页面控制器中显示表格
for(int i=0; i < 10; i++)
{
table_obj[i] = [[UITableView alloc]initWithFrame:CGRectMake(0, 0, 700, 500)];
table_obj[i].separatorStyle = UITableViewCellSeparatorStyleNone;
table_obj[i].separatorColor = [UIColor clearColor];
table_obj[i].delegate = self;
table_obj[i].dataSource = self;
table_obj[i].backgroundColor = [UIColor clearColor];
[scrollview addSubview:table_obj[i]];
[table_obj[i] reloadData];
}
我在How to call UItableview Delegate methods. When tableview is in "for" Loop?找到同样的问题,但这不适用于我的身边
答案 0 :(得分:0)
我认为您与单个班级中的多个TableView
对象相混淆,但可以使用一种delegate
和dataSource
方法。
这是如何使用单个委派实现多个tableViews
的委托。
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
if (tableView == table_obj[0]) {
//This method is invoked by the tableview available at index 0 in table_obj array.
//return number of cells you want to show in this tableView
return 5;
}else if (tableView == table_obj[1]) {
//This method is invoked by the tableview available at index 1 in table_obj array.
//return number of cells you want to show in this tableView
return 10;
}else if (tableView == table_obj[2]) {
//This method is invoked by the tableview available at index 2 in table_obj array.
//return number of cells you want to show in this tableView
return 15;
}else {
//if doesn't match with any tableView in array then just return 0
return 0;
}
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
if (tableView == table_obj[0]) {
//This method is invoked by the tableview available at index 0 in table_obj array.
//create cells for this tableView and set Data
UITableViewCell *cell = [[UITableViewCell alloc] init];
return cell;
}else if (tableView == table_obj[1]) {
//This method is invoked by the tableview available at index 1 in table_obj array.
//create cells for this tableView and set Data
UITableViewCell *cell = [[UITableViewCell alloc] init];
return cell;
}else if (tableView == table_obj[2]) {
//This method is invoked by the tableview available at index 2 in table_obj array.
//create cells for this tableView and set Data
UITableViewCell *cell = [[UITableViewCell alloc] init];
return cell;
}else {
UITableViewCell *cell = [[UITableViewCell alloc] init];
return cell;
}
}