【发布时间】:2012-03-22 22:24:33
【问题描述】:
这是我的重载功能
- (void) reloadTable:(id)sender
{
NSLog(@"Reload Table");
NSLog(@"%@",[appDelegate queryList]);
[self.driverTable reloadData];
[self.driverTable setNeedsLayout];
[self.driverTable setNeedsDisplay];
}
这是我从 web 服务接收数据后调用它的地方
if( [elementName isEqualToString:@"Response"]) {
Response = NO;
LookupView *lookupView = [[LookupView alloc] initWithNibName:@"LookupView" bundle:nil];
[lookupView reloadTable:self];
}
我现在遇到的问题是通过按查找按钮进行搜索并接收数据之后。该表不会用新数据刷新。如果我通过再次按下查找按钮再次调用相同的函数,表格会重新加载。现在我知道数据在那里,因为我在调用表重新加载之前打印了数组。
有什么想法吗?
【问题讨论】:
-
为什么需要 setNeedsLayout 和 setNeedsDisplay? UITableView 不需要重绘,它们会在重新加载时自行处理。
-
哦,我只是在这里研究解决方案,一些有类似问题的人提到了这个,所以我只是尝试
-
删除@CodaFi提到的那些东西方法。它不属于那里。
-
@DanielChen 您说您的数据正在第二次重新加载,当您按下查找按钮时。那么 reloadTable: 方法是否在第一次被调用?如果它被调用,那么你打印数组时得到的控制台输出是什么??
-
我相信它被调用了,因为当该方法被调用时我正在打印列表。甚至在我第一次单击该按钮时,列表也会打印出预期的数据列表。我删除了@CodaFi 提到的行
标签: ios cocoa-touch uitableview reloaddata