iPhone - 3个带自定义单元格的UITableViews

时间:2011-01-11 14:59:48

标签: iphone uitableview

我有3个表视图的视图。 每个表视图将使用一个“自定义单元视图”。我正在使用以下代码。但它只显示一个表视图。有人能指出我为什么吗? (所有数组都填充了必要的对象)

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

if(cell == nil)
{
    NSArray* nibObjects = [[NSBundle mainBundle] loadNibNamed:@"CustomCellView" owner:nil options:nil];
    for(id currentObject in nibObjects)
    {
        if([currentObject isKindOfClass:[CustomCellView class]])
        {
            cell = (CustomCellView*)currentObject;
        }
    }       
}

ObjectDetails* obj;
if(tableView == phoneNumbersTable)
{
    obj = [phoneNumbersArray objectAtIndex:indexPath.row];
}
else if(tableView == mailIDsTable)
{
    obj = [mailIDsArray objectAtIndex:indexPath.row];
}
else if(tableView == socialUpdatesTable)
{
    obj = [socialUpdatesArray objectAtIndex:indexPath.row];
}   

cell.keyLabel.text = [self returnPhoneType:obj.objKey];
cell.valueLabel.text = obj.objValue;        

return cell;}

2 个答案:

答案 0 :(得分:0)

您有2个选项。

  1. 在tableViews以及该标记的dataSource和Delegates方法测试中设置tag属性。
  2. 制作3个对象,每个对象设置为特定的tableView委托和数据源,并将代码放入该对象中。
  3. 希望有所帮助。如果您要添加所有数据源和委托方法,则会有更多人尝试提供帮助。

答案 1 :(得分:0)

问题可能在于重用标识符。由于您使用具有相同标识符的单元格用于所有表视图,因此我认为这是问题的原因。我也有这个问题以同样的方式修复它。使用不同的标识符为每个tableview创建单独的单元格并重用它们。