3

カスタムセル内にボタンがあります。ボタンをタップすると、モーダル セグエを介してビューが表示されます。

だから、ここに私の質問があります。そのセルの indexPath を取得するにはどうすればよいですか?

私は次のようなことができると思いました:

UITableViewCell * cell = sender.parent 

明らかに、そのようには機能しません。

私を助けてください。

更新@rmaddyのおかげ[[sender superview] superview]で、ボタンが保持されているセルとそのindexPathにたどり着きました。皆さん、答えてくれてありがとう!

4

5 に答える 5

7

ある種の(など)であると仮定するsenderと、次のようになります。UIVIewUIButton

UIView *parentView = [(UIView *)sender superview];

ボタンのスーパービューがテーブルセルであると確信している場合は、次のことができます。

UITableViewCell *cell = (UITableViewCell *)[(UIView *)sender superview];

セルを取得したら、テーブルビューのindexPathForCell:メソッドを使用します。

contentViewセルまたはセルの他のサブビューにボタンを実際に追加した場合、ボタンからセルを取得するのは少し難しいことに注意してください。

于 2013-02-07T17:10:32.993 に答える
1

superviewプロパティでビューのスーパービューにアクセスできるので

sender.superview
于 2013-02-07T17:10:19.950 に答える
0

cellForRow...メソッドを追加するだけです

cellButton.tag = indexPath.row;

このボタンが押されたとき、またはボタンの参照があるときにそれを取り戻します

于 2013-02-07T17:12:17.887 に答える
0

これを試して

UIButton *btn = (UIButton*)sender;
UITableViewCell * cell = (UITableViewCell*)[btn superview];
NSIndexPath *indx = [myTable indexPathForCell:cell];
于 2013-02-07T17:14:04.907 に答える
0

セルに隠し要素が追加されています: UITableViewCellScrollView. とコンテンツ ビューのUITableViewCellScrollView間に追加されます。UITableViewCell最初の送信者スーパービューはUIView、コンテンツ ビューに対応するオブジェクトを返します。2 番目のスーパービューは を返しUITableViewCellScrollView、3 番目のスーパービューは を返しUITableViewCellます。次に、indexPathForCellメソッドを使用してセルのインデックスを取得します。

UITableViewCell *cellView = (UITableViewCell *)[[[sender superview] superview] superview];
NSIndexPath *indexPath = [self.tableView indexPathForCell:cellView];
于 2014-08-25T18:30:14.177 に答える