我想用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
答案 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时发生的情况:
你使用这样的合成:
@synthesize myTable;
所以像这样使用reloadData:
[myTable reloadData];
你使用这样的合成:
@synthesize myTable = _myTable;
所以请使用reloadData,如下所示:
either [_myTable reloadData]; or [self.myTable reloadData];
在您的情况下(没有任何@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及更高版本中也能正常使用。