如何在for循环中将数据设置为多个tableviews

时间:2017-12-15 07:19:54

标签: ios xcode uitableview

我在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?找到同样的问题,但这不适用于我的身边

1 个答案:

答案 0 :(得分:0)

我认为您与单个班级中的多个TableView对象相混淆,但可以使用一种delegatedataSource方法。

这是如何使用单个委派实现多个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;
    }

}