如何手动调用UITableView的委托方法?

时间:2013-11-06 13:17:03

标签: ios objective-c uitableview

我有一个按钮,应该调用tableview的委托方法

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

点击该按钮时。

有谁能告诉我怎么做。

5 个答案:

答案 0 :(得分:2)

NSIndexPath *indexPath = [NSIndexPath indexPathForRow:1 inSection:0];
[self.tableView selectRowAtIndexPath:indexPath animated:YES scrollPosition:UITableViewScrollPositionNone];
[self tableView:self.tableView didSelectRowAtIndexPath:indexPath];

答案 1 :(得分:0)

按钮将无法自动调用该方法,因为它没有表视图或索引路径的概念,但如果您创建自己的方法,则可以直接调用该方法

- (void)buttonAction:(id)sender
{
    NSIndexPath *path = //path for row you want to select
    [self tableView:self.tableView didSelectRowAtIndexPath:path];
}

答案 2 :(得分:0)

[self tableView:_myTbl didSelectRowAtIndexPath:[NSIndexPath indexPathForItem:_rowNeeded inSection:_sectionNeeded];
//call method, like user selected needed cell

[_myTbl selectRowAtIndexPath:indexPath animated:YES scrollPosition:UITableViewScrollPositionBottom];
// show selected cell in UI

答案 3 :(得分:0)

如果你想在用户按下TableViewCell上的按钮时想要那个,那么你可以触发动作,当点击一个单元格时会发生什么,然后你可以执行以下操作。

在您的cellForRowAtIndexPath方法中,在按钮上添加手势识别器。像这样,

cell.myButton.userInteractionEnabled = YES;
cell.myButton.tag = indexPath.row ;
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)];
[tap setNumberOfTouchesRequired:1];
[tap setNumberOfTapsRequired:1];
[tap setDelegate:self];
[cell.myButton addGestureRecognizer:tap]; 

这是handleTap方法

- (void)handleTap:(UITapGestureRecognizer *)recognizer
{
    NSLog(@"Handle Tap method");
    NSLog(@"Row Index : %d" , recognizer.view.tag);
    int row_index = recognizer.view.tag ;

    // Perform your Action woth row_index
}

不要忘记添加头文件。希望能帮助到你。

答案 4 :(得分:0)

对于表格视图单元格中的选择整行:

NSIndexPath *indexPath = [NSIndexPath indexPathForRow:1 inSection:0];
[self.tableView selectRowAtIndexPath:indexPath animated:YES scrollPosition:UITableViewScrollPositionNone];
[self tableView:self.tableView didSelectRowAtIndexPath:indexPath];

采取"我"循环值