複数ボタンに同じ機能を割り付け使い分ける

グループ指定のように複数のボタンにひとつの機能を割り振ります。

一応、キモは以下です。

同じイベントが呼ばれるうえに名前をつけてないのですから、そのままでは各ボタンの区別がつきません。そこでTagってプロパティに値を入れておき、これで区別します。

たとえば以下のように。

ボタンの名前 ボタンのtag値 米語での名前
月野うさぎ 1 Serena Tsukino
水野亜美 2 Ami Anderson
火野レイ 3 Reye Hino
木野まこと 4 Lita Kino
愛野美奈子 5 Mina Aino

で、呼ばれた側では1〜5の名前に従って、右の名前をプログラム側で示してみます。

#import "testappViewController.h"

@interface testappViewController ()
- (IBAction)touchAction:(UIButton *)sender;
@property (weak, nonatomic) IBOutlet UILabel *label2;
@property (weak, nonatomic) IBOutlet UILabel *label1;

@end

@implementation testappViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
	// Do any additional setup after loading the view, typically from a nib.
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (IBAction)touchAction:(UIButton *)sender {
    NSString *name, *fighter;
    // senderのタグを見て個別判断する。
    switch(sender.tag){
        case 1: name = @"Serena Tsukino"; fighter = @"SailorMoon";break;
        case 2: name = @"Ami Anderson"; fighter = @"SailorMercury";break;
        case 3: name = @"Reye Hino"; fighter = @"SailorMars";break;
        case 4: name = @"Lita Kino"; fighter = @"SailorJupiter";break;
        case 5: name = @"Mina Aino"; fighter = @"SailorVenus";break;
    }
    _label1.text = name;
    _label2.text = fighter;
}
@end

いやー懐かしい。バイト時代に覚えたんで、世間的には知らないけど個人的にはもう20年は前なんですよね、これ。