0

私は2つのボタン(コードの一部)に似ているこのボタンコードを持っています

btn.frame=CGRectMake(600,400,30,30);]
btn.addTarget:self actionL@selector(authButtonAction)forControlEvents:UIControlEventTouchUpInside]

および関数内(ダミーコード)

-(void)authButtonAction {
    if btn1 was clicked btn1.caption=y else btn1.caption=2
}

私のボタンは機能し、関数が呼び出されますが、私がやろうとしていたのは、どのボタンがクリックされたかをどうにかして見つけることです...それをに渡しますauthButtonAction。X 個の関数を記述する手間が省け、1 つの関数で if ステートメントを使用できるからです。

4

4 に答える 4

2

ボタンにタグを設定します。

#define TAG_BUTTON_ONE 1
#define TAG_BUTTON_TWO 2

oneButton       =  [[UIButton alloc] ......];
oneButton.tag   =  TAG_BUTTON_ONE;
[oneButton addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
-----
-----

twoButton       = [[UIButton alloc] ....];
twoButton.tag   = TAG_BUTTON_TWO;
[twoButton addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
---
--

ボタンハンドラーで、送信者のタグを確認します

-(void) buttonClicked:(UIButton*)sender{
   if(sender.tag == TAG_BUTTON_ONE){
      //handle button one click
   }else if(sender.tag == TAG_BUTTON_TWO){
      //handle button 2 click
   }   
}
于 2012-12-20T06:07:20.777 に答える
0

ボタンの ID を設定btn.Tagし、それを使用してどのボタンが押されたかを判断します。

于 2012-12-20T06:02:44.017 に答える
0

ボタン メソッドの名前の末尾にはコロンが必要です。ボタンはそれ自体を送信者引数として渡します。これを照会して、どのボタンがクリックされたかを (タイトルまたはタグに基づいて) 調べることができます。

于 2012-12-20T06:02:53.773 に答える
0

ボタンにタグを付けて、アクションメソッドで tappedButton のタグを確認することができます。

-(IBAction)ButtonPressed:(id)sender
{
UIButton *pressedButton = (UIButton *)sender;
int buttonTag = pressedButton.tag;
if (buttonTag==1)
{
NSLog(@"Button 1 Pressed");
}
else
{
NSLog (@"Button 2 Pressed");
}
}
于 2012-12-20T06:05:51.683 に答える