执行 JSON POST 时重新加载 TableView?

Posted

技术标签:

【中文标题】执行 JSON POST 时重新加载 TableView?【英文标题】:Reloading TableView when JSON POST is Performed? 【发布时间】:2014-08-21 11:33:45 【问题描述】:

我在每个 UITableViewCell 中都有一个按钮。我想执行刷新 RowatIndex。每当单击按钮时。执行 AFNetworking 的 POST 请求方法。我的 ViewdidLoad 方法中有 GET 请求方法。

如何在 UITableViewCell 中单击按钮并在 Basecamp Application 中加载动画时更新数据?

【问题讨论】:

你的问题有点含糊,你是不是想在你的数据源更新后只更新按下的单元格按钮? 【参考方案1】:

尝试以下方法:

    NSMutableArray *cellIsRefreshed = [NSMutableArray alloc]initWithCapacity:yourDataArray];
    for(int i=0; i<[yourDataArray count]; i++)
     
         cellIsRefreshed[i] = @"0";
     

 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
   
      TableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CELL_Identifier forIndexPath:indexPath];
      if (cell == nil) 
         cell = [[TableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CELL_Identifier];
      
      [cell.button addTarget:self action:@selector(buttonAction:) forControlEvents:UIControlEventTouchDown];
      if([cellIsRefreshed[indexPath.row] integerValue] ==1)
        
         [cell.button setHidden:YES];
         [cell.doneImage setHidden: NO];
      
      else
        
         [cell.button setHidden:NO];
         [cell.doneImage setHidden: YES];
      
      return cell;
   
- (void)buttonAction :(UIButton *)sender
  
     UIButton *button = (UIButton *)sender;
     CGPoint pointInSuperview = [button.superview convertPoint:button.center toView:self.tableView];
     NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:pointInSuperview];
     AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
     NSDictionary *parameters = @@"foo": @"bar";
    [manager POST:@"http://example.com/resources.json" parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) 
         NSLog(@"JSON: %@", responseObject);
         cellIsRefreshed[indexPath.row] = @"1";
      failure:^(AFHTTPRequestOperation *operation, NSError *error) 
         NSLog(@"Error: %@", error);
     ];
     [tableView reloadData];
  

【讨论】:

我对 'GET' 'POST' 'REQUEST' 没有问题,我无法显示对 Basecamp 应用程序等按钮选择的确认,并且数据未刷新。 你试过[tableview reloadData]; POST 完成后

以上是关于执行 JSON POST 时重新加载 TableView?的主要内容,如果未能解决你的问题,请参考以下文章

重新加载单元格中没有图像的表格视图重新加载

无法使用新的json数据重新加载JQGrid

提交时 ASP.NET jQuery 重新加载元素(Ajax POST/GET)

CoreData:在返回 UITableView 之前重新加载数据

保留键顺序:使用 Python 脚本将 JSON 数据加载到 Snowflake VARIANT 列中

tableview 在 connectionDidFinishLoading 中重新加载数据时出错(由 json 解析)