2012-12-20 50 views
0

我有此按鈕的代碼,其是在兩個按鈕(該代碼的一部分)多個按鈕調用相同的功能(和功能知道哪個鍵進行呼叫)

btn.frame=CGRectMake(600,400,30,30);] 
btn.addTarget:self [email protected](authButtonAction)forControlEvents:UIControlEventTouchUpInside] 

並且在功能上類似於(啞代碼)

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

我的按鈕的作品和我的函數被調用,但我試圖做的就是以某種方式找出哪個按鈕被點擊...傳遞到authButtonAction。因爲這會使我無法編寫X個函數,我可以在一個函數中使用if語句。

+1

嘗試一些標籤設置爲按鈕並檢查標籤及應用相應的條件。 – Girish

+0

@Girish:這是完美的答案,爲什麼你害羞地給它作爲答案? –

+0

@Anoop:如果使用單行註釋解決問題,則不需要回答。 – Girish

回答

0

btn.Tag設置爲您的按鈕的ID,然後用它來確定哪個按鈕被按下。

0

你的按鈕方法的名字末尾應該有一個冒號。該按鈕將作爲發件人參數傳遞。您可以通過查詢來找出哪個按鈕被點擊(基於其標題或標籤)。

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"); 
} 
} 
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 
    } 
}