我正在制作基于导航的iphone应用程序。
我的一个视图控制器如下所示:
@interface NewComputerViewController : UIViewController <UITableViewDelegate, UITableViewDataSource>
所以我使用UITableView
来显示数据。
当视图加载时,我使用顶部导航栏中的一个按钮运行一个函数loadStuff
加载一些字典中的东西。
我的问题:如何从loadStuff
函数(属于视图控制器)重新填充该视图控制器中的表视图
答案 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的名称