4行のグループ化されたtableViewがあります。2つのビュー間でどのように処理を行っているかについてかなり大規模なオーバーホールを行いましたが、reloadDataがおかしな動作をしています。1行のデータのみを更新します。(最後のもの)そして他のどれも。
viewDidAppearメソッド(reloadDataを呼び出す)で値を確認し、すべての値が更新されました。
コード..
- (void)viewDidAppear:(BOOL)animated
{
[super viewWillAppear:animated];
// reload the table data
[self.tableView reloadData];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
// Set up the cell...
static NSString *CellWithIdentifier = @"Cell";
UITableViewCell *cell = (UITableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellWithIdentifier];
if (cell == nil)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellWithIdentifier];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
cell.textLabel.text = [_tableGroup.options objectAtIndex:rowcount];
cell.tag = rowcount;
rowcount++;
//label for currently selected/saved setting
_currentSetting = [[BaseLabel alloc] initWithFrame:CGRectMake(160, 8, 115, 25)];
[_currentSetting setFont:[UIFont systemFontOfSize:14]];
_currentSetting.backgroundColor = [UIColor clearColor];
_currentSetting.textColor = [UIColor blueColor];
_currentSetting.textAlignment = NSTextAlignmentRight;
}
if (cell.tag == 0) {
_currentSetting.text = [NSString stringWithFormat:@"%@ mi",[settings.val1 stringValue]];
}
else if(cell.tag == 1)
{
_currentSetting.text = [NSString stringWithFormat:@"%@ items",[settings.val2 stringValue]];
}
else if(cell.tag == 2)
{
_currentSetting.text = [NSString stringWithFormat:@"%@ items",[settings.val3 stringValue]];
}
[cell.contentView addSubview:_currentSetting];
return cell;
}
NSLogを使用しましたが、reloadDataですべてが正常に呼び出されていますが、セルのラベルは変更されていません。なんで?