我是iPhone和Apple开发的新手,并在我的第一个应用程序上工作。当选择表格中的项目时,只需使用TableView和“详细视图”即可。
我想要做的是根据我在“详细视图”中采取的一些操作来更改TableView中单元格的背景颜色。
当应用程序最初加载时,我在-cellForRowAtIndexPath:
方法中自定义颜色,但是当用户从我的详细信息视图中导航回未调用该函数时,因此我的表视图没有更新颜色。现在刷新的唯一方法是退出应用程序并再次启动它。 (我坚持选择NSUserDefaults。)
显然,我希望表格视图在从详细视图返回时刷新,但我不知道如何获取对单元格的引用以及使用哪种方法。我假设它应该进入-viewDidAppear
,因为这被称为视图显示的所有内容。
答案 0 :(得分:34)
使用[tableView reloadData]
- 这将使tableview遍历行并重建自己。
答案 1 :(得分:9)
你应该在viewWillAppear:
中真正做到这一点。
此外,您可以使用其visibleCells
方法获取表格视图的可见单元格。由于表视图的工作方式,其他单元格根本不存在 - 滚动将触发委托方法并创建新单元格(或者如果使用dequeue...
则将现有单元格取消)。
答案 2 :(得分:1)
我想补充一点,如果它在编辑视图中然后保存存储在表中的一些修改信息,那么你应该有一个委托来检测数据实际保存的时间,然后重新加载你的tableview。每次出现视图时都会触发viewWillAppear。我认为您所追求的只是在数据被更改后才想要刷新表格。