这是我的重新加载功能
- (void) reloadTable:(id)sender
{
NSLog(@"Reload Table");
NSLog(@"%@",[appDelegate queryList]);
[self.driverTable reloadData];
[self.driverTable setNeedsLayout];
[self.driverTable setNeedsDisplay];
}
这是我从网络服务接收数据后调用它的地方
if( [elementName isEqualToString:@"Response"]) {
Response = NO;
LookupView *lookupView = [[LookupView alloc] initWithNibName:@"LookupView" bundle:nil];
[lookupView reloadTable:self];
}
我现在遇到的问题是在我通过按查找按钮进行搜索并接收数据之后。该表不会用新数据刷新。如果我再次按查找按钮再次调用相同的函数,表将重新加载。现在我知道数据在那里,因为我在调用表重新加载之前打印了数组。
有什么想法吗?
我遇到了同样的问题。根据 Apple 的文档,reloadData“不应在插入或删除行的方法中调用”。我使用的解决方法是延迟对 reloadData 的调用,以便它不会在更新表后立即调用。尝试这个:
[self performSelector:@selector(delayedReloadData) withObject:nil afterDelay:0.5];
在适当的地方执行以下delayReloadData
-(void)delayedReloadData{
[self.tableView reloadData];
}
我从这种方法中看到的一个负面影响是,如果表行可见,则在显示其内容之前会有短暂的延迟。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)