识别UITavleViewCell标签中的点击手势,但也不选择单元格

时间:2012-05-11 23:08:55

标签: iphone objective-c ios storyboard

我在UITableViewCell上有UITapGestureRecognizer个自定义UILabel,它会转移到新的视图控制器。当点击手势发生时,segue工作,但始终从唯一的第一个单元格传递数据,无论tapGesture执行的是哪个单元格。但是,当我第一次选择标签tapGestureRecognizer之外的单元格,然后执行轻击手势,数据成功通过b / c我首先选择了相应的单元格。

如何设置tapGesture以识别单元格选择?

P.S。我在故事板中设置了手势和segue,而不是代码。另外,我的数据传递代码是我的prepareForSegue方法。

1 个答案:

答案 0 :(得分:4)

您的问题对于细节有点轻微,但我要问一下:您是否在代码中确定在点按时选择了哪个单元格?

即。在发生点击时触发的方法中,通过查询tableview来检查点击发生的单元格,然后您可以确定需要在prepareForSegue方法中传递的代码。

例如,我使用下面的方法来确定点击了哪个单元格,然后调出该单元格的文本字段的键盘。您可以轻松地对其进行调整以存储被点击的单元格,然后在prepareForSegue中使用它来发送正确的数据。

希望这就是你要找的东西。但是,不能从你的问题中说出来!

- (void) tapDetected:(UIGestureRecognizer*)sender
{
    // get location of tap
    CGPoint tapLocation = [sender locationInView:self.tableView];

    // Query tableview and get location of cell
    NSIndexPath *idp = [self.tableView indexPathForRowAtPoint:tapLocation];

    // Now get the actual cell
    UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:idp];

    // Get handle on text field
    UITextField *textField = (UITextField *)[cell viewWithTag:1];

    // Bring up keyboard for that textfield.
    [textField becomeFirstResponder];


}