0

我想通过单击按钮重新加载我的 TableView,我读了很多东西,但我发现我必须编写[tableView reloadData]问题是,在我自己的函数中我没有 tableView 我将我 ÌBoutlet UITableView *myTable的表与表链接并编写函数[myTable reloadData] 但是什么都没发生。

在部分视图中,我可以添加和删除项目。如果我用表格更改视图,它们不会更新(也许轮询更新程序会更好,但它是一样的)现在我想刷新我的表格视图以显示新单元格

你对我有什么好主意吗?谢谢

编辑:

我写在.h

IBOutlet UITableView *myTable;

@property UITableView *myTable;

@synthesize myTable

- (IBAction)test:(id)sender
 {
   [self.myTableView reloadData];
 }

但如果我按下按钮,什么也不会发生。我设置了一个NSLog, 来检查函数中的功能

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
- (NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
4

3 回答 3

2

首先放入并正确连接到插座并在 .h 文件和 .m 文件中创建UITableView,然后使用以下代码 ( )。xib@property@synthesizeself.tableView

-(IBAction)btnPressed:(UIButton *) Sender
{
  [self.tableView reloadData];
}

可能对你有帮助:)

谢谢 :)

于 2013-02-04T10:19:22.147 回答
1

首先,您检查到该变量的链接是否仍然存在。如果链接正常,则只需致电

[self.tableview reladData];

如果链接断开,则首先将变量链接到UITableView来自 xib 的变量,然后尝试调用与上面相同的方法。

希望这会帮助你。

于 2013-02-04T10:25:43.063 回答
1

当您将 tableView 链接到 .h 文件时,您可能正在使用不需要在 .m 文件中 @synthesize 的新版本的 Xcode,就像您在 @property 方面所做的那样。

这是在 .h 文件中定义 @property 时发生的情况:

  1. 你像这样使用合成:

    @synthesize myTable;

所以像这样使用 reloadData :

[myTable reloadData];
  1. 你像这样使用合成:

    @synthesize myTable=_myTable;

所以使用 reloadData 像其中之一:

either [_myTable reloadData]; or [self.myTable reloadData];
  1. 或者你没有使用任何@synthesize:

在您的情况下(没有任何@synthesize 的新版Xcode),如果您不使用@synthesize,您只需要编写其中之一

[_myTable 重载数据];

或者

[self.myTable reloadData];

希望它有帮助。我没有解释如何创建 IBAction 或使用委托,因为我看到你做得对。

祝你好运

Update1:​​Xcode 4.4 及更高版本中 Auto @synthesize 功能的一些资源:

http://useyourloaf.com/blog/2012/08/01/property-synthesis-with-xcode-4-dot-4.html

XCode 4.4 Auto @Synthesize 在 XCode 4.3 项目上失败

更新2:我刚刚看到你说最好通过拉刷新系统来做到这一点。最好提供一些有关您正在构建的应用程序的详细信息,例如 iOS 版本。如果是 6.0 或更高版本,您可以使用本机拉取刷新方法,如下所示:

http://www.lextech.com/2012/10/ios-6-pull-to-refresh-tutorial/

或者,如果它不是 iOS 6.0,您始终可以使用 EGOTableViewPullRefresh,我已经使用过它,即使在 iOS 6.0 及更高版本上也能正常工作。

https://github.com/enormego/EGOTableViewPullRefresh

于 2013-02-04T10:32:35.267 回答