プログラムで複数配置したUIButtonで、どのUIButtonが押されたか判別したい

条件によって数が増減するボタンなど、Storyboardを使わずにUIButtonを生成して配置したいことがあります。
まず、UIButtonを作って配置します。gazouは配列で、画像ファイル名が格納されており、このgazou分だけforで繰り返しボタンを生成しています。
for(int i = 0;i<[gazou count];i++){ UIButton *btn = [[UIButton alloc] initWithFrame:CGRectMake((i*90),0,50,50)]; [btn setBackgroundImage:[UIImage imageNamed:[gazou objectAtIndex:i]] forState:UIControlStateNormal]; [btn addTarget:self action:@selector(action:) forControlEvents:UIControlEventTouchUpInside]; btn.tag = i; [self.view addSubview:btn]; }
今回は背景に画像を入れていて、ボタンがタップされるとactionというメソッドが動くようになっています。そして、ボタンを生成するときに、tagをつけています。このtagを使うことで、どのボタンか判別します。
-(void)action:(UIButton*)button{ NSLog(@"%d",button.tag); }
ボタンが押されたときにactionメソッドに飛びますが、ここでbutton.tagでどのtagか判別可能です。あとはif文などで、処理を振り分ければOKです。
[sc name=”ios”][sc name=”engeneer”]
SHARE
スキルアップにMENTA
MENTAはいろんなプロに相談できるNo1メンターサービスです。
僕自身もプロダクトの壁打ち・相談にのっています。個人開発でもコードレビュー、セキュリティ面のチェック、デザイン、広告、コンテンツマーケ、SNS集客について相談する、など使えます。
YouTubeでも発信中!
PROFILE

入江 慎吾
あらゆるスキルが学べるパーソナルメンターサービスMENTAの代表/個人開発が好きでこれまでに30個ほどのWEBサービスやアプリを作ってきました/福岡のWEB制作会社勤務→フリーランスエンジニア→法人立ち上げ→M&A億単位の売却を経験。 (詳しいプロフィール)
あらゆるスキルが学べるパーソナルメンターサービスMENTAの代表/個人開発が好きでこれまでに30個ほどのWEBサービスやアプリを作ってきました/福岡のWEB制作会社勤務→フリーランスエンジニア→法人立ち上げ→M&A億単位の売却を経験。 (詳しいプロフィール)