我在UITableViewCell
上有UITapGestureRecognizer
个自定义UILabel
,它会转移到新的视图控制器。当点击手势发生时,segue工作,但始终从唯一的第一个单元格传递数据,无论tapGesture执行的是哪个单元格。但是,当我第一次选择标签tapGestureRecognizer之外的单元格,然后执行轻击手势,数据成功通过b / c我首先选择了相应的单元格。
如何设置tapGesture以识别单元格选择?
P.S。我在故事板中设置了手势和segue,而不是代码。另外,我的数据传递代码是我的prepareForSegue方法。
答案 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];
}