UITableView重新加载数据

时间:2011-02-23 18:04:17

标签: iphone objective-c uitableview

我正在制作基于导航的iphone应用程序。

我的一个视图控制器如下所示:

@interface NewComputerViewController : UIViewController <UITableViewDelegate, UITableViewDataSource>

所以我使用UITableView来显示数据。

当视图加载时,我使用顶部导航栏中的一个按钮运行一个函数loadStuff加载一些字典中的东西。

我的问题:如何从loadStuff函数(属于视图控制器)重新填充该视图控制器中的表视图

6 个答案:

答案 0 :(得分:53)

您始终可以使用[tableView reloadData]方法!

但是,如果您在本地存储了一些数据并从某个服务器加载新内容,那么您可以选择:

[tableView beginUpdates];
[tableView insertRowsAtIndexPaths:*arrayOfIndexPaths* withRowAnimation:*rowAnimation*];
[tableView endUpdates];

如果您想删除现有行,可以使用

[tableView beginUpdates];
[tableView deleteRowsAtIndexPaths:*arrayOfIndexPaths* withRowAnimation:*rowAnimation*];
[tableView endUpdates];

答案 1 :(得分:25)

尝试使用[tableView reloadData];(其中tableView是实例变量的名称)

答案 2 :(得分:5)

甚至重装...

[tableView reloadData];

不会重新加载已编辑的行/单元格,]。检查tableView的IBOutlet是否未连接到XIB文件中。?

这可能是其中一个原因。

答案 3 :(得分:4)

非常重要的是,您需要确保您的tableview的来源也反映了您的更改。

当您删除某些内容时,如果您不先删除源中的项目,[tableView reloadData]将不会执行任何操作。

我遇到以下情况: 我有一个tableview,显示了我的文档文件夹中的一些文件。然后我想删除一些文件并将其删除在documents-folder中,但它们仍然出现在我的列表中。我在这篇文章中尝试了[tableView reloadData]和所有其他建议的答案,但仍然列出了文件。 当我关闭tableview并再次打开它时,列表很好。为什么? 好吧,因为我用我的所有文件填充了NSArray - &gt;这是tableView的“源”。因此,当我删除文件时,我不仅需要删除documents-folder中的文件,还需要将其从数组中删除。 - &GT;所以我创建了一个NSMutableArray来删除它。 然后调用[tableView reloadData]并且列表很好。 ; - )

答案 4 :(得分:3)

在函数末尾 loadstuff 通过编写以下代码重新加载表的内容:

[tableView reloadData];

答案 5 :(得分:0)

[tableView reloadData];其中tableview是您的UITableView的名称