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

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

于 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 回答