清空TableView内容

3

有谁能提供如何清除所有表格视图单元格内容的代码帮助我。 当按下按钮重新加载表视图时,但不清除表格视图中的内容。

谢谢 Rakesh


Legolas的回答和Neelesh的评论结合起来形成了你的答案。希望这能帮到你。 - Parth Bhatt
它本来可以实现,但我有很多数组,它们相互关联,所以不容易。 - Rakesh
你能把那段代码发出来让我看看并帮助你吗? - Parth Bhatt
嗨Parth。如何在搜索后清除tableView?我的意思是,在从搜索栏中搜索项目后,当我点击搜索栏的(x)关闭按钮时,tableView也应该被清除。我希望你明白了。 - Gajendra K Chauhan
3个回答

10

如果要清空一个tableView,你只需要从用来填充表格的数组中移除所有对象,然后重新加载tableView即可。

[myArray removeAllObjects];
[self.tableView reloadData];

但是我之后必须使用数组的值,所以我不能清除它。我希望有一种不清除数组的解决方案。能帮忙吗? - Rakesh
1
将数组复制到另一个数组中,并将其用作数据源。 - Neelesh

3

设置一个 bool 类型的 tableIsEmpty 变量,并根据这个变量的值,将表格视图的行数设为 0(表示表格为空)或数组的计数。请在代码中实现此逻辑。

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;

当按钮被按下并且数据被加载时,您需要将tableIsEmpty设置为YES,然后再次设置为NO。然后调用:
[self.tableView reloadData];

没有经过测试,但应该可以工作,不是吗?


我正要提供类似的解决方案。如果他知道应该在哪个条件下返回0,这将起作用。+1 - Praveen S
是的,只需添加一个BOOL属性来跟踪单元格是否应该被清除。 - Filip Radelic

1

在重新加载表格之前,您只需添加一个变量作为标志。

makeEmpty = YES;
[tableview reloadData];
makeEmpty = NO;

然后在tableview委托方法中。
 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
 {
  if(makeEmpty)
      return 0;
 }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接