【发布时间】:2013-06-10 13:28:25
【问题描述】:
我想在我的视图控制器中添加一个刷新栏按钮
UIBarButtonItem *refreshButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemRefresh target:self action:@selector(refreshTable)];
self.navigationItem.leftBarButtonItem = refreshButton;
而可刷新的功能是:
- (void) refreshTable
{
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://....../fastnews.php"]];
[self performSelectorOnMainThread:@selector(fetchedData:) withObject:data waitUntilDone:YES];
});
}
获取数据的功能是:
-(void)fetchedData:(NSData *)responseData
{
NSError *error;
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error];
fastResults = [json objectForKey:@"nodes"];
[self.tableView reloadData];
}
如果我的视图控制器中有两个表视图,并且我希望在单击刷新按钮时只重新加载第一个表,
我在上面放了相同的代码,但在这里不起作用!我应该做点别的吗? 我做这样的事情:
哪个 refreshButton 是:@property (strong, nonatomic) IBOutlet UIBarButtonItem *refreshButton;
【问题讨论】:
-
给出tableview的名字并调用reloadData。意味着如果你声明你的 tableview 像
IBOutlet UITableView *secondTable;调用像[secondTable reloadData]; -
问题解决了吗?
-
这正是我所做的,但没有工作,我应该在故事板属性中做一些事情,比如依赖插座或其他什么吗?
-
你想刷新哪个表视图,按下重新加载按钮?
-
上面那个,我把它重命名为fastTableView,在实现这个表时,我依赖另一个视图控制器` if (secondController == nil) { secondController = [[FastNewsListViewController alloc] init]; } [fastTableView setDataSource:secondController]; [fastTableView setDelegate:secondController]; secondController.view = secondController.tableView;`
标签: iphone ios uibarbuttonitem uibarbuttonitemstyle