我在刷新表时遇到问题。我像这样创建表
for (int i = 0; i < 4; i++)
{
DetailsTable = [[UITableView alloc] initWithFrame:CGRectMake(i*768, 45, 768, 1024) style:UITableViewStyleGrouped];
DetailsTable.dataSource = self;
DetailsTable.delegate = self;
DetailsTable.tag = i + 1;
[scrollView addSubview:DetailsTable];
[DetailsTable release];
}
每当我像这样刷新表格时[DetailsTable reloadData];它只刷新最后一个表。而其他表格没有得到刷新
如何在iphone中刷新所有表格视图
答案 0 :(得分:1)
您将继续覆盖循环中PersonDetailsTable属性的值。因此,该属性的值是循环退出后的第4个值。您可以针对该属性调用reloadData,该属性指向您添加的表的第4个实例。
为了实现这一目标,您需要一个NSMutableArray表视图(而不是一个属性引用),并且重新加载所有这些都可以使用reloadData调用进行循环。当然,在UITableView数据源回调中,您需要区分哪个表视图正在为数据调用,因为self是数据源,所有这些都是委托。
答案 1 :(得分:1)
这是因为在DetailsTable中,最后一个表引用是保留的,以便发生这种情况 试试这个 在.h文件中添加此内容
NSMutableArray *tblArr;
在.m文件中添加
tblArr=[[NSMutableArray alloc] init];
for (int i = 0; i < 4; i++)
{
UITableView *DetailsTable = [[UITableView alloc] initWithFrame:CGRectMake(i*768, 45, 768, 1024) style:UITableViewStyleGrouped];
DetailsTable.dataSource = self;
DetailsTable.delegate = self;
DetailsTable.tag = i + 1;
[scrollView addSubview:DetailsTable];
[tblArr addObject:DetailsTable];
[DetailsTable release];
}
当你想重新加载所有表时使用这个
for (int i = 0; i < 4; i++)
{
[(UITableView *)[tblArr objectAtIndex:i] reloadData];
}
答案 2 :(得分:0)
你正在创建4个tableView而不是4个单元格,并且每次创建表格的新实例时都要调用[DetailsTable reloadData];它引用了最新的DetailsTable实例,即最后一个表。
答案 3 :(得分:0)
每次在for循环中,变量DetailsTable都会被替换为新的。
您应该创建一个表数组,如下所示:
//Declaration
UITableView *DetailsTable[4];
//Implementation
for (int i = 0; i < 4; i++)
{
DetailsTable[i] = [[UITableView alloc] initWithFrame:CGRectMake(i*768, 45, 768, 1024) style:UITableViewStyleGrouped];
...
}
//And to refresh them
for(int i = 0; i < 4; i++)
[DetailsTable[i] reloadData];
答案 4 :(得分:0)
将你要创建的循环放入
DetailsTable.tag=i
然后以委托方法的编辑方法为例使用此
- (void)tableView:(UITableView *)tableView didEndEditingRowAtIndexPath:(NSIndexPath *)indexPath
{
switch (tableView.tag)
{
case 0:
{
//write your code here
break;
}
// like this do all for other remaining tableview
default:
break;
}
}
答案 5 :(得分:-1)
您无法添加此类表格。您的下一个tableView将替换pre tableView。你应该通过初始化四个单表来实现这一点。