2017-07-08 4 views
0

テーブルビューのセル内にボタンがあります。ボタンは、基本的にセルが参照するファイルを開きます。これは、検索がオンになっていない間は正常に動作しています。しかし、検索がオンになっている間は、検索結果の配列内に正しい行が表示されないようです。 これは私がこれまでに試したことです:cellForRowAtIndexPathの 私はボタンにタグを付けました。UITableviewセル内のボタンをクリックすると検索中に間違った結果が表示される

myDownloadsBtn = (UIButton *) [cell viewWithTag:106]; 

アクションは、以下のように設定されている:

[myDownloadsBtn addTarget:self action: @selector(downloadClicked:event:) forControlEvents:UIControlEventTouchUpInside]; 

が、その後downloadClickedで、私は

NSSet *touches = [event allTouches]; 
    UITouch *touch = [touches anyObject]; 
    NSString *todoRow; 
    CGPoint currentTouchPosition = [touch locationInView:self->tableview]; 
    NSIndexPath *indexPath = [self->tableview indexPathForRowAtPoint: currentTouchPosition]; 

を以下しているが、それは私にVISIBLE現在位置のindexPathではなく、位置を与えます検索結果配列内の行の

また、私のデリゲートメソッドofdidSelectRowAtIndexPathは、検索の有無に関係なく正常に動作します。これは、セル内のボタン用です。

私はこの質問を見つけましたが、答えはありません: how to get selected tableview button value while search in iOSです。

他の質問は、検索時に選択された実際のセルを知る方法を扱いますが、それは私の問題ではありません。

ありがとうございます。

答えて

1

ヨボタンをクリック/

[myDownloadsBtn setTag:indexPath.row]; 

として、あなたdownloadClickedアクションアクセスしたがってタグ触れられている行のインデックスにボタンにタグを割り当てることができます

-(IBAction)myDownloadsBtn:(id)sender 
{ 
    UIButton *tappedBtn = (UIButton*)sender; 
    Nslog("%d",tappedBtn.tag); // Get tag hence indexpath of tableview in which button is clicked. 
    } 

次の作業を行う必要があり検索結果配列で表のデータをリロードします。

希望します。ハッピーコーディング!!

+0

を使用してtableviewをリロードする必要があります!あまりにも遅く返事を申し立てることは申し訳ありませんが、これは完璧です! – user3079872

+0

それはあなたのために働いてうれしい! – luckyShubhra

1

tebleviewの特定のインデックスのオブジェクトの識別のために、あなたの特定のindexpath.rowをあなたのUIButtonにタグとして与える必要があります。

これは最高の承認です。その後

aCell.yourButton.tag = indexPath.row 

[aCell.yourButton addTarget:self action: @selector(downloadClicked:event:) forControlEvents:UIControlEventTouchUpInside]; 

あなたは

-(IBAction)myDownloadsBtn:(id)sender 
{ 
    UIButton *tappedBtn = (UIButton*)sender; 
    Nslog("%d",tappedBtn.tag); // it gives index of object related to your cell 
} 

このイベントを処理する必要がありますが、あなたが言ったことは、あなたが検索を実行した後、正しい結果を取得されていませんされています。 何私が考えていることは、検索から結果を取得した後、あなたがあなたに感謝

[yourTableView reloadData] 
+0

ありがとうございます!私は正しい検索結果を得ています。問題は、検索結果配列内のボタンを押すときです。タグ付けは正しいことです。私は 'cell.myDownloadsBtn.tag = indexpath.row'を入力するとエラーになります。ちょうどmyDownloadsBtn.tagであれば動作します。 – user3079872

関連する問題