调用了TableView的viewWillAppear(),但未刷新数据

时间:2010-12-04 08:36:05

标签: iphone uitableview

有时看起来微不足道的问题在最后处理时会被忽略,但是你永远不会知道这会成为你的噩梦,发生在我身上。

在此先感谢,问题我的应用程序的设置页面包含tableView,每个设置元素都是视图之一。其中一个设置项(行)提供show扩展了另一个listTableView中的一些项目列表。在listTableView中进行选择后,当我使用navigationItem.leftButton(返回)返回到我的设置tableView时,所选项目值与前一项的值重叠,在viewWillAppear中的[tableView reloadData]工作正常,但tableView行不是新绘制的。它不会刷新单元格的UI。

请注意,如果settingTableView有任何子视图,如UIButton等,它具有最新值,我可以使用它作为解决方法,但唯一的问题是何时再次选择此行选择具有旧值,在选择行时重叠新值。 / p>

我将不胜感激任何建议或使用示例代码都会有很大的帮助。

非常感谢 阿米特辛格

4 个答案:

答案 0 :(得分:0)

[tableView reloadData];方法中使用viewWillAppear

答案 1 :(得分:0)

或在[tableView reloadData];方法

中使用viewDidAppear

答案 2 :(得分:0)

您面临的问题可能是由于可重复使用的单元格部分和未重复使用的单元格部分。查看您在

块内编写的代码
if(cell==nil){}  

您在块内创建的组件将不会重新创建,而其他组件可能正在重新创建,从而导致单元格重叠。

答案 3 :(得分:0)

在我的情况下,我不得不使用[self.tableView reloadData];而不是[tableView reloadData];在viewWillAppear方法中。