无法在tableView的行中找到实际的“详细信息按钮”

时间:2010-06-30 18:30:57

标签: iphone uitableview accessorytype accessoryview

当我点击我的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);
}

2 个答案:

答案 0 :(得分:1)

附件视图是UIView而不是UIButton。也许将其转换为按钮会抛出描述方法。只是一个猜测。

答案 1 :(得分:0)

您最好的选择是访问视图中的按钮。也许像是

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

这假设您只在附件视图中有详细信息按钮,从子视图中选择它,并在详细信息中创建对它的引用:)