1

私は、新しいView Controllerに続くカスタムを持ってUITableViewCellUITapGestureRecognizerます。UILabelタップ ジェスチャが発生すると、セグエが機能しますが、tapGesture が実行されるセルに関係なく、常に最初のセルのみからデータが渡されます。 、データは正常に通過します b/c 最初にそれぞれのセルを選択しました。

セル選択も認識するように tapGesture を設定するにはどうすればよいですか?

PS コードではなく、ストーリーボードでジェスチャとセグエを設定しました。また、私のデータ受け渡しコードは私の prepareForSegue メソッドです。

4

1 に答える 1

4

あなたの質問は詳細について少し軽いですが、私に尋ねさせてください:あなたはあなたのコードでタップが起こったときにどのセルが選択されたかを決定していますか?

すなわち。タップが発生したときに起動するメソッドで、テーブルビューをクエリしてタップが発生したセルを確認し、そこから、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 に答える