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 = 自己; あなたは大丈夫なはずです。

于 2012-07-30T10:09:53.217 に答える
0

テーブル ビューをサブクラス化しても、このような問題が発生することはありません。サブクラスは、定義上、すべての処理に加えて、そのスーパークラスよりも多くのことを行います。データソースのみを設定しているようですが、デリゲートは次のとおりです。

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