0

私のxibには17個のボタンがあります。そして、タグ値を 1 から 17 に設定しました。

17個のボタンすべてを.hの単一の変数名に接続し、.mの特定のボタンをタグ値で取得する方法を教えてください。

ありがとう

4

4 に答える 4

1

これをテストしたところ、ストーリーボードですべてのボタンを選択し、それらをアシスタントエディターの適切なコントローラーにコントロールドラッグすると、すべてのボタンを表すアウトレットのコレクションを作成できることがわかりました。結果のコードは次のとおりです。

@property (strong, nonatomic) IBOutletCollection(UIButton) NSArray *buttons;
于 2012-05-17T00:25:43.247 に答える
1

私の経験では不可能です。IBOutlet、つまりInterface Builder Outletは、常にインターフェイスコンポーネント(ボタンなど)とインターフェイス内の変数(IBOutlet UIButton * myButtonなど)の間の単一の接続を参照します。この1対1の関係。

于 2012-05-16T10:43:43.247 に答える
1

ボタンごとに 1つ必要IBOutletなので、17 個すべてを作成する必要があります。ボタンをアウトレットに個別に接続すると、配列でボタンが必要な場合は、イニシャライザー内の配列に配置できます。

ただし、メソッドを節約できます。次のIBActionようなメソッドを1つ作成します

-(IBAction)buttonClicked:(id)sender {
}

このメソッドをすべてのボタンに接続し、 のタグを見て、(id)senderどのボタンがアクションを呼び出したかを判断できます。

于 2012-05-16T10:45:52.393 に答える
0

17個のボタンに1つの参照を与えることはできませんが、@dasblinkenlightが言ったように17個のボタンに1つのメソッドを割り当てることができます

メソッドをすべてのボタンクリックイベントに設定するだけで、IBActionタグ値を使用して必要なボタンにアクセスできます

-(IBAction)buttonClicked:(id)sender {

     int j = [sender tag];
     NSLog(@"Clicked Button %i", j);

}
于 2012-05-16T10:50:56.767 に答える