【问题标题】:Refresh data in table view in a view controller that contains multiple table views在包含多个表视图的视图控制器中刷新表视图中的数据
【发布时间】: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


【解决方案1】:

您不需要分配标签值。只需为两个表创建单独的属性,您就可以使用表名调用reloadData 仅用于第一个表。

【讨论】:

  • 这就是我所拥有的:[secondController.tableView reloadData];,但仍然无法正常工作,第二个控制器是我要重新加载数据的表的名称
  • ` if (secondController == nil) { secondController = [[FastNewsListViewController alloc] init]; } [fastTableView setDataSource:secondController]; [fastTableView setDelegate:secondController]; secondController.view = secondController.tableView;`
  • which FastNewsListViewController 是我实现的另一个视图控制器,它包含与我想重新加载的表相同的数据,但部分中的单元格数量更多。
  • @CarinaM 你通过介绍这个比你的问题全新的代码让我感到困惑。如果您编辑您的问题以结合您的控制器和表格,我将不胜感激。
  • 其实我的代码很复杂,因为这是我做的第一个应用程序,而且我是IOS应用程序的新手,如有错误请执行,感谢您的支持:) ,非常感谢
猜你喜欢
  • 2019-06-15
  • 2014-06-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多