And*_*i S 27 iphone objective-c uitableview
我正在为iphone制作一个基于导航的应用程序.
我的一个视图控制器看起来像这样:
@interface NewComputerViewController : UIViewController <UITableViewDelegate, UITableViewDataSource>
Run Code Online (Sandbox Code Playgroud)
所以我用a UITableView来显示数据.
当视图加载时,我使用顶部导航栏中的一个按钮来运行一个函数loadStuff加载一些字典中的东西.
我的问题:如何从该loadStuff函数(属于视图控制器)重新填充该视图控制器中的表视图
SPa*_*til 53
你总是可以使用[tableView reloadData]方法!
但是如果你有一些本地存储的数据并从某个服务器加载新东西,你可以去:
[tableView beginUpdates];
[tableView insertRowsAtIndexPaths:*arrayOfIndexPaths* withRowAnimation:*rowAnimation*];
[tableView endUpdates];
Run Code Online (Sandbox Code Playgroud)
如果要删除现有行,可以使用
[tableView beginUpdates];
[tableView deleteRowsAtIndexPaths:*arrayOfIndexPaths* withRowAnimation:*rowAnimation*];
[tableView endUpdates];
Run Code Online (Sandbox Code Playgroud)
sud*_*-rf 25
尝试使用[tableView reloadData];(其中tableView是实例变量的名称)
甚至重装......
[tableView reloadData];
Run Code Online (Sandbox Code Playgroud)
将不会重新加载已编辑的行/单元格,].检查tableView的IBOutlet未在XIB文件中连接.
这可能是其中一个原因.
非常重要的是,您需要确保 tableview 的来源也反映了您的更改。
当您删除某些内容时,[tableView reloadData] 不会在您不先删除源中的项目时执行任何操作。
我在以下情况下遇到了这个问题:我有一个 tableview,它显示了我的文档文件夹中的一些文件。然后我想删除一些文件,我在文档文件夹中删除了它们,但它们仍然出现在我的列表中。我在这篇文章中尝试了 [tableView reloadData] 和所有其他建议的答案,但仍然列出了文件。当我关闭 tableview 并再次打开它时,列表很好。为什么?好吧,因为我用我所有的文件填充了一个 NSArray -> 这是我的 tableView 的“源”。因此,当我删除文件时,不仅需要删除文档文件夹中的文件,还需要将其从数组中删除。-> 所以我做了一个 NSMutableArray 来有能力删除它。然后调用[tableView reloadData],列表就好了。;-)
小智 5
确保您正在设置datasource和委托tableView。
tableView.delegate = self;
tableView.dataSource = self;
Run Code Online (Sandbox Code Playgroud)
确保在控制器中实现了正确的委托和数据源方法。
在loadStuff方法中,调用:
[tableView reloadData];
Run Code Online (Sandbox Code Playgroud)
很快,同样:
tableView.delegate = self
tableView.dataSource = self
tableView.reloadData()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
68234 次 |
| 最近记录: |