0

我按照这个Custom UITableViewCell创建了一个自定义 TableView

我创建了一个 CustomerCell,然后在 ViewController 中像这样使用它:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSString *uniqueIdentifier = @"cutomerCell";

    CustomerCell *cell = nil;
    cell = (CustomerCell *) [self.tableview dequeueReusableCellWithIdentifier:uniqueIdentifier];

    Customer *customer = [self.customers objectAtIndex:[indexPath row]];
    if(!cell)
    {
        NSArray *topLevelObject = [[NSBundle mainBundle] loadNibNamed:@"CustomerCell" owner:nil options:nil];
        for(id currentObject in topLevelObject)
        {
            if([currentObject isKindOfClass:[CustomerCell class]])
            {
                cell = (CustomerCell *) currentObject;
                break;
            }
        }
    }
    cell.nameLabel.text = customer.name;

    return cell;
}

一切正常。但随后我开始下一个链接UINavigationController

问题是当我使用这种方法时:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSLog(@ "hi");   
}

当我单击 TableView 中的一个项目时,什么也没有发生。可能是因为我实现了Custom TableView然后我不能使用didSelectRowAtIndexPath方法,但是我该如何解决呢?

4

3 回答 3

1

您得到的错误与您的笔尖有关,而不是您的 UITableView。您应该检查 Customer Detail 类的视图是否已连接到 nib 中的所有者。这就是为什么你一尝试使用它就会崩溃

[self.navigationController pushViewController:self.customerDetail animated:YES];
于 2012-07-30T12:12:45.603 回答
0

你设置代理了吗?tableView.delegate = self; 我猜你应该没事。

于 2012-07-30T10:09:53.217 回答
0

对表视图进行子类化不应该导致这样的问题——根据定义,子类所做的一切都比它的超类更多。似乎您只设置了数据源但委托:

tableView.delegate = self;
于 2012-07-30T10:11:49.270 回答