我的Controller继承自UITableViewController - 但是找不到这个委托方法?

时间:2014-08-21 16:44:50

标签: objective-c uitableview

背景 - 我正在尝试让我的控制器在选择并点按

时取消选择一行
- (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];

    if ([cell isSelected]) {
        // Deselect manually.
        [tableView.delegate tableView:tableView willDeselectRowAtIndexPath:indexPath];
        [tableView deselectRowAtIndexPath:indexPath animated:NO];
        [tableView.delegate tableView:tableView didDeselectRowAtIndexPath:indexPath];
        self.selectedRow = -1;

        [tableView beginUpdates];
        [tableView setTableHeaderView:self.headerView];
        [tableView endUpdates];
    } else {

        self.selectedRow = indexPath.row;
        [tableView beginUpdates];
        [tableView setTableHeaderView:nil];
        [tableView endUpdates];

    }

    return indexPath;
}

- (NSIndexPath *)tableView:(UITableView *)tableView willDeselectRowAtIndexPath:(NSIndexPath *)indexPath
{
   return [super tableView:tableView willDeselectRowAtIndexPath:indexPath];
}

代码执行时,在选择时点击一行:

tableView:willDeselectRowAtIndexPath:]: unrecognized selector sent to instance 0xbf59e00

我的Controller继承自UITableViewController。它设置为tableView上的委托。我错过了什么?

1 个答案:

答案 0 :(得分:1)

您可以查看此链接

How to deselect a selected UITableView cell?

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{
//Change the selected background view of the cell.
 [tableView deselectRowAtIndexPath:indexPath animated:YES];
}