11

同じ IBAction でファイルの所有者に接続されている 2 つの UIButtons (IB を使用して作成) があります。どのボタンが押されているかを定義するにはどうすればよいですか?

4

4 に答える 4

26

アクションは次のように実装できます。

- (IBAction) buttonTapped: (id) sender
// you can also replace id with UIButton*

次に、このメソッド内で -isEqual: メソッドで確認できます

- (IBAction) buttonTapped: (id) sender
{
   if ([sender isEqual:referenceToOneOfYourButtons]) {
   // do something
   }
   else if ([sender isEqual:referenceToTheOtherButton]) {
   ...
   }
}

または、ボタンのタグ プロパティに異なる値を設定してから、次の操作を行うこともできます。

- (IBAction) buttonTapped: (UIButton*) sender
{
   const int firstButtonTag = 101;
   const int otherButtonTag = 102;

   if (sender.tag == firstButtonTag) {
   ...
   }
   else if (sender.tag == otherButtonTag) {
   ...
   }
}

.xib またはコードでこのタグを設定する必要があります。

于 2011-04-04T18:01:21.067 に答える
6

これらの行に沿った何か... button1 と button2 がヘッダーファイルにあると仮定します。

- (IBAction)buttonPressed:(UIButton *)button {
        if (button == button1) {
        } else if (button == button2) {
        }
}

または、Interface Builder でタグを設定し、タグを確認します。

- (IBAction)buttonPressed:(UIButton *)button {
            if (button.tag == 1) {
            } else if (button.tag == 2) {
            }
    }

タグはゼロベースではありません。1 以上を使用してください。

于 2011-04-04T18:01:58.863 に答える
0

-(IBAction)myButtonAction:(id)送信者 {

    if ([sender tag] == 0) {
        // do something here
    }
    if ([sender tag] == 1) {
        // Do some think here
   }

}

// 言い換えると

-(IBAction)myButtonAction:(id)送信者 {

     NSLog(@"Button Tag is : %i",[sender tag]);

    switch ([sender tag]) {
    case 0:
        // Do some think here
        break;
    case 1:
       // Do some think here
         break;
   default:
       NSLog(@"Default Message here");
        break;

}

于 2013-04-15T16:22:16.517 に答える
0

あなたの行動を次のように宣言します

- (IBAction)someAction:(id)sender;

コントロールが someAction メッセージを送信すると、それ自体が送信者パラメーターとして送信されます。

例えば

- (IBAction)someAction:(id)sender {
    NSLog(@"sender: %@", sender);
}

これで、どのコントロールがメッセージを送信したかがわかります。

于 2011-04-04T18:01:26.760 に答える