0

例如,我正在尝试将一个地名加载到我的 topUITableView中,称为myTableView. 在底部,我试图显示“test2”。

自然,所有数据都被加载到每个UITableView. 如果我滚动到底部myTableView2,会显示“test2”这个词,但我希望它是那里唯一的东西。

有没有办法,也许通过委派不同的数据源,我可以分离每个我想要的数据UITableView?我尝试用 if 语句分隔,但很快意识到这没有效果。

在我看来,我可能需要为 设置单独的数据源myTableView2,但我不知道该怎么做......

代码在这里:

- (void) connectionDidFinishLoading:(NSURLConnection *)connection
{

   [self setString];
   NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:responseData options:0 error:nil];

   NSString *string1 = [dic objectForKey:@"name"];

   for (NSDictionary *diction in dic)
   {
      [array addObject:string1];
   }

   [[self myTableView] reloadData];

   NSString *string2 = [NSString stringWithFormat:@"test2"];

   [array addObject:string2];

   [[self myTableView2] reloadData];

   [indicator stopAnimating];
   indicator.hidden=YES;
   [indicator removeFromSuperview];
   ilabel.hidden = YES;
}

顶部是 myTableView,底部是 myTableView2

4

1 回答 1

0

用下面的代码解决。关键是要有两个不同的数组来加载各自的数据,并将其显示在我能够区分 UITableViews 和 IF 语句的最底部:

- (void) connectionDidFinishLoading:(NSURLConnection *)connection
{
 [self setString];
 NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:responseData options:0 error:nil];
 NSString *string1 = [dic objectForKey:@"name"];
 NSString *string2 = [NSString stringWithFormat:@"test2"];

  for (NSDictionary *diction in dic)
  {
      [array addObject:string1];
      [array2 addObject:string2];

      [[self myTableView] reloadData];
      [[self myTableView2] reloadData];
  }

  [indicator stopAnimating];
  indicator.hidden=YES;
  [indicator removeFromSuperview];
  ilabel.hidden = YES;
}

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{    
 static NSString *CellIdentifier = @"Cell";
 UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

 if(!cell)
 {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
 }

 if (tableView == self.myTableView)
 {
  if ([[array objectAtIndex:indexPath.row] isKindOfClass:[NSNumber class]])
  {        
    cell.textLabel.text = [[array objectAtIndex:indexPath.row] stringValue];
    cell.textLabel.textColor = [UIColor whiteColor];
    cell.textLabel.textAlignment = NSTextAlignmentCenter;
  }
  else
  {        
    cell.textLabel.text = [array objectAtIndex:indexPath.row];
    cell.textLabel.textColor = [UIColor whiteColor];
    cell.textLabel.textAlignment = NSTextAlignmentCenter;
  }
 }
 if (tableView == self.myTableView2)
 {
    if ([[array2 objectAtIndex:indexPath.row] isKindOfClass:[NSNumber class]])
    {
        cell.textLabel.text = [[array2 objectAtIndex:indexPath.row] stringValue];
        cell.textLabel.textColor = [UIColor whiteColor];
        cell.textLabel.textAlignment = NSTextAlignmentCenter;
    }
    else
    {
        cell.textLabel.text = [array2 objectAtIndex:indexPath.row];
        cell.textLabel.textColor = [UIColor whiteColor];
        cell.textLabel.textAlignment = NSTextAlignmentCenter;
    }
 }
 return cell;
}
于 2013-04-14T00:52:41.717 回答