0

tableViewの詳細ボタンをクリックすると...セクション番号、行番号、さらにはセル自体を取得できます...しかし、実際の「詳細ボタン」が取得できないのはなぜですか? (NSLog は、常にボタンに対して "(null)" を表示します。)

- (void) tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath
{
    int section = indexPath.section;
    int row     = indexPath.row;

    UITableViewCell *aCell = [tableView cellForRowAtIndexPath:indexPath];
    UIButton *detailButton = (UIButton *)[aCell accessoryView];

    // Why is detailButton null?
    NSLog(@"accessory button tapped for row with index path %d x %d \n cell=(%@) \n button=(%@)", section, row, aCell, detailButton);
}
4

2 に答える 2

1

アクセサリ ビューは、UIButton ではなく UIView です。おそらく、それをボタンにキャストすると、説明メソッドがスローされます。推測です。

于 2010-06-30T18:39:09.033 に答える
0

あなたの最善の策は、ビュー内のボタンにアクセスすることです。おそらく次のようなもの

UIButton* detailBtn = [[UIButton alloc] init];
for (UIButton* detail in aCell.accessoryView.subviews)
{
     detailBtn = detail;
}

これは、アクセサリ ビューに詳細ボタンしかないことを前提としており、サブビューからそれを選択し、detailBtn でそれへの参照を作成します :)

于 2012-11-15T14:50:25.243 に答える