首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >表没有刷新。

表没有刷新。
EN

Stack Overflow用户
提问于 2012-02-29 05:31:02
回答 6查看 117关注 0票数 2

我在刷新桌子方面有问题。我创建了这样的桌子

代码语言:javascript
运行
复制
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];
}

每当我像这个reloadData一样刷新表时,它就只刷新最后一个表。而其他表没有刷新

如何在iphone中刷新所有表视图

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-02-29 05:40:11

这是因为在DetailsTable中,最后一个表引用是保留的,这样就可以尝试在.h文件中添加这个

代码语言:javascript
运行
复制
NSMutableArray *tblArr;

将其添加到.m文件中

代码语言:javascript
运行
复制
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];
}

当您想放松所有的表时,请使用这个

代码语言:javascript
运行
复制
for (int i = 0; i < 4; i++) 
{
    [(UITableView *)[tblArr objectAtIndex:i] reloadData];
}
票数 1
EN

Stack Overflow用户

发布于 2012-02-29 05:34:19

一直覆盖循环中的PersonDetailsTable属性的值。因此,该属性的值是循环退出后的第四个值。针对该属性调用reloadData,该属性指向您添加的表的第4个实例。

要做到这一点,您需要一个表视图的NSMutableArray (而不是一个属性引用),并且重新加载所有这些视图都需要使用reloadData调用。当然,在您的UITableView数据源回调中,您需要区分哪个表视图正在为数据调用您,因为self是所有这些数据的数据源和委托。

票数 1
EN

Stack Overflow用户

发布于 2012-02-29 05:36:49

您正在创建4个tableView,而不是4个单元格,每次创建表的新实例时,当您调用DetailsTable reloadData时,它都会返回DetailsTable的最新实例,即最后一个表。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9494040

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档