1

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

如何将 tapGesture 设置为也识别单元格选择?

PS我在情节提要中设置了手势和segue,而不是代码。另外,我的数据传递代码是我的 prepareForSegue 方法。

4

1 回答 1

4

您的问题对细节有点轻,但让我问:您是否在代码中确定在点击发生时选择了哪个单元格?

IE。在点击发生时触发的方法中,通过查询 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];


}
于 2012-05-17T01:58:15.463 回答