我的故事板中没有创建UITableView,而是通过代码创建。这个表可以通过选择其他一些冠军来刷新,但是当我这样做的时候,还有另一个带有旧数据的表...我设置为nil非常时间刷新......
有人有想法吗?
要填写表格,我使用此代码
listVideo = [listGroupes objectAtIndex:indexPath.row];
montageListView= [[UITableView alloc] initWithFrame:listFrame style:UITableViewStylePlain];
montageListView.delegate = self;
montageListView.dataSource = self;
montageListView.layer.cornerRadius = 10;
[listMontagesView addSubview:montageListView];
所以有一个新的视图与另一个选项,但如果我回到这个代码:
montagesListView removeFromSuperview];
montagesListView = nil;
我用相同的代码重新填充
listVideo = [listGroupes objectAtIndex:indexPath.row];
montageListView= [[UITableView alloc] initWithFrame:listFrame style:UITableViewStylePlain];
montageListView.delegate = self;
montageListView.dataSource = self;
montageListView.layer.cornerRadius = 10;
[listMontagesView addSubview:montageListView];
并且有一个很好的表格但旧的数据还有另一个... 我真的没有发现代码问题:/
这是行的单元格代码,但我不认为这是问题,
static NSString *MyIdentifier = @"MyIdentifier";
NSString *text;
// Try to retrieve from the table view a now-unused cell with the given identifier.
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier];
// If no cell is available, create a new one using the given identifier.
if (cell == nil) {
// Use the default cell style.
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:MyIdentifier];
}
if (tableView == groupListView) {
text = [listGroupesNames objectAtIndex:indexPath.row];
}else {
text = [[listVideo objectAtIndex:indexPath.row]description];
if ([[listVideo objectAtIndex:indexPath.row]note] == 1) {
cell.imageView.image = [UIImage imageNamed:@"good.png"];
}
if ([[listVideo objectAtIndex:indexPath.row]note] == 2) {
cell.imageView.image = [UIImage imageNamed:@"neutre.png"];
}
if ([[listVideo objectAtIndex:indexPath.row]note] == 3) {
cell.imageView.image = [UIImage imageNamed:@"bad.png"];
}
}
if ([[UIDevice currentDevice]userInterfaceIdiom] == UIUserInterfaceIdiomPad) {
cell.textLabel.font=[UIFont systemFontOfSize:18.0];
text = [NSString stringWithFormat:@" %@",text];
}else{
cell.textLabel.font=[UIFont systemFontOfSize:12.0];
}
if (tableView == groupListView) {
cell.imageView.image = [UIImage imageNamed:@"group.png"];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
}
if(tableView == montageListView){
cell.imageView.image = [UIImage imageNamed:@"videos.png"];
}
cell.textLabel.text = text;
return cell;
答案 0 :(得分:0)
如果没有代码,就无法确切地知道问题是什么,但如果每次重新创建表格视图,则需要确保在将其设置为nil之前执行[tableView removeFromSuperview]
。
答案 1 :(得分:0)
你的问题有点难以理解,但这是我的看法。
您似乎想刷新表格视图中的数据?如果是这样,您不需要创建新的UITableView。只需调用reloadData
,UITableView将查询它的新数据的委托和数据源。
如果添加新的UITableView实例但在数据源和委托方法中返回相同的数据,它将只显示旧数据。确保更新方法。