あなたの実装はまったく問題ありません。必要UIButton
に応じて、IB で 'sa タグ値を指定してから、メソッドを組み合わせることができます (両方のアクションを同じメソッドに設定します)。
- (IBAction)buttonPressed:(UIButton *)button {
if (button.tag == 0) {
self.firstLabel.text = rightNow;
} else if (button.tag == 1) {
self.secondLabel.text = rightNow;
}
}
スイッチを使用することもできます。
switch (button.tag) {
case 0:
self.firstLabel.text = rightNow;
break;
case 1:
self.secondLabel.text = rightNow;
break;
default:
break;
}
これがあなたが求めているものだと思います。私が何かを誤解した場合は、私に知らせてください。
編集:
あなたがこれらのうちの9つを持っていることを考えると、私は個人的に私のアプローチを少し変えます. それらをすべて配列に入れてアクセスすることもできます[self.myLabels[button.tag] setText:rightNow];
が、それでも 9 つの IBOutlets が必要です。問題はありませんが、たくさんあります。
もう 1 つの方法は、対応するボタンより 20 ポイント高いタグをすべてのボタンに付けて、IBAction 内で次のようにすることです。
UIView *viewToChange = [self.view viewWithTag:button.tag+20];
// used to protect yourself since IB allows the multiple views to have the same tag
if ([viewToChange isKindOfClass:[UILabel class]]) {
((UILabel *)viewToChange).text = rightNow;
}
これは単純ですが、ボタンとラベルの両方のタグ値にロジックをしっかりとバインドします。これの利点は単純なロジックであり、すべての UILabel に対して IBOutlets がありません!