【Objective-C】ボタンにイベントを設定する方法

ALL
この記事は約3分で読めます。

今回はObjective-CのUIButtonにタップイベント処理を紐づける方法です。

(任意のメソッド){
    [button  addTarget:self action:@selector(button_Touch_Event:event:) forControlEvents:UIControlEventTouchUpInside];
}

//ボタンに紐づけるメソッド
-(void)button_Touch_Event:(UIButton *)sender event:(UIEvent *)event{
    ボタンタップ時の処理
}

【応用】リスト表示されたボタンに処理を紐づける方法.

リスト表示されたボタンのタップ時に実行される処理を結び付ける方法です。
方法としては、「cellForRowAtIndexPath」メソッドを使用して設定します。

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@”Cell名”];
    UIButton *button = (UIButton *)[cell viewWithTag:1]; //ボタンに割り振られているTagを指定
    [button  addTarget:self action:@selector(button_Touch_Event:event:) forControlEvents:UIControlEventTouchUpInside];
}

ただし注意点として、すべての行のボタンに同じ処理が結び付けられるため、タップされたボタンの行によって使うデータを変える等工夫が必要です。

そこで詰まった場合は、こちらの記事を参考にしてください。

【Objective-C】ボタンをタップしたTableViewCellの行番号を特定する方法