如何重新加载整个tableview?在-tableView:cellForRowAtIndexPath:
我将在线数据与用户设备上的数据进行比较,如果不相同,我会显示一个下载内容的按钮。在连接到此按钮的操作后,我想刷新整个tableview,再次在线与本地用户抱怨内容。
reloadData
确实更新了值,但它并没有删除这些按钮。我想改变细胞的显示方式..
换句话说,我希望这个条件(在-tableView:cellForRowAtIndexPath:
中)起作用,它不会:
if (![[NSFileManager defaultManager] fileExistsAtPath:someDir isDirectory:nil]) {
UIButton *bt = [UIButton buttonWithType:UIButtonTypeRoundedRect];
(...)
[cell addSubview:bt];
}
要立即更新表格,我必须弹出viewcontroller并再次推送它。我想用navBar上的按钮来做。
提前致谢。
答案 0 :(得分:1)
这是因为您使用dequeueReusableCellWithIdentifier
缓存单元格。检查文档。您应该使用和不使用按钮来缓存2种类型的单元格。
答案 1 :(得分:1)
UITableViewCell* cell = [tableView dequeueReusableCellWithIdentifier: @"your-id"];
if (cell)
{
//Check if it should contain a button. If it shouldn't remove it
}
else
//Create a fresh new cell