通过按钮重新加载Tableview

时间:2013-02-04 10:09:01

标签: ios objective-c uitableview

我想用Button Click重新加载我的TableView, 我读了很多东西,但我发现了 我必须这样做 写[tableView reloadData]问题是,在我自己的函数中我没有tableView我链接了我的 ÌBoutlet UITableView *myTable与表格并编写函数[myTable reloadData] 但没有任何事情发生。

在视图中我可以添加和删除项目。 如果我用表更改到视图,它们不会更新(可能轮询更新程序会更好,但它相同) 现在我想刷新我的tableview以显示新的单元格

你对我有好主意吗? 感谢

编辑:

我写下了 在.h

IBOutlet UITableView *myTable;

@property UITableView *myTable;

in .m

@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

3 个答案:

答案 0 :(得分:2)

首先将UITableView添加到xib并正确连接到outlet,然后在.h文件和@property到.m文件中创建@synthesize 然后使用以下代码(self.tableView)。

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

可能对您有帮助:))

谢谢:)

答案 1 :(得分:1)

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

[self.tableview reladData];

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

希望这会对你有所帮助。

答案 2 :(得分:1)

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

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

  1. 你使用这样的合成:

    @synthesize myTable;

  2. 所以像这样使用reloadData:

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

      @synthesize myTable = _myTable;

    2. 所以请使用reloadData,如下所示:

      either [_myTable reloadData]; or [self.myTable reloadData];
      
      1. 或者您没有使用任何@synthesize:
      2. 在您的情况下(没有任何@synthesize的新版Xcode)如果您没有使用@synthesize,您只需要编写其中一个

          

        [_ myTable reloadData];

        [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 failing on an XCode 4.3 Project

        Update2:我刚看到你说通过拉动刷新系统来做这件事会更好。最好提供一些关于你正在构建的应用程序的详细信息,如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