2

この件はスタックオーバーフロー全体にありますが、適切な解決策が見つかりませんでした。

それぞれにボタンをつけていますUITableViewCell

これがセルの作成方法です。

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"ExaminationCell"];
    UIButton *clipButton = (UIButton *)[cell viewWithTag:3];

    MedicalExamination *examination = [objects objectAtIndex:indexPath.row];

    [clipButton addTarget:self action:@selector(examinatonClicked:) forControlEvents:UIControlEventTouchUpInside];

    return cell;
}

ボタンのクリックを処理するメソッドは次のとおりです。

-(void)examinatonClicked:(MedicalExamination*)examination
{

}

examinatonCommentsClicked検査オブジェクトをメソッドに渡すにはどうすればよいですか? 明らかに、オブジェクトはセルごとに異なります...

4

2 に答える 2

3

私がやろうとしているややハックなことは、UIButton のタグ属性を使用して行番号を渡し、テーブルを裏打ちしている配列からオブジェクトを取得できるようにすることです。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"ExaminationCell"];
    UIButton *clipButton = (UIButton *)[cell viewWithTag:3];
    clipButton.tag = indexPath.row //Set the UIButton's tag to the row.

    MedicalExamination *examination = [objects objectAtIndex:indexPath.row];

    [clipButton addTarget:self action:@selector(examinatonClicked:) forControlEvents:UIControlEventTouchUpInside];

    return cell;
}

-(void)examinatonClicked: (id)sender
{
     int row = ((UIButton *)sender).tag;
     MedicalExamination *examination = [objects objectAtIndex: row];
     //Profit!
}
于 2014-03-28T18:18:20.160 に答える
-1

uitableviewCellを介してボタンを追加しxib(custum cell)、それを介して接続する必要があると思いますiboutlet

于 2013-10-30T10:39:20.457 に答える