2012-03-12 85 views
1

在我的程序中,有5個五鍵。將根據按鈕的選擇執行不同的操作。不過,我只是將一個IBAction分配給所有按鈕。有沒有什麼方法可以幫助我檢測用戶在單個IBAction中選擇哪個按鈕?非常感謝!如何從按鈕獲取動作?

+0

不知道Xcode,但有沒有可能爲按鈕的任何ID字段? – 2012-03-12 00:57:25

+0

通過在頭文件中聲明它們,您可以在您的接口中識別ID項... IBOutlet UIButton * myButton1; 然後,您可以將這些聲明鏈接到您的界面,以便Xcode知道您在代碼中討論的是哪些接口項目。 – 2012-03-12 01:25:36

回答

1

假設你的按鈕都有自己的

@property (strong, nonatomic) UIButton *menuButton; 

你可以改變這樣的功能:

- (IBAction)actionButtons:(UIButton*)sender { 
    if ([sender isEqual:menuButton]) { 
     NSLog(@"Menu Pressed"); 
    } 
} 

這樣,您就可以使用標籤爲了別的東西(我用它們來表示我是哪個階段的界面)

PD:你可能想讓你的按鈕變弱,我把它們聯繫爲強有力的原因。

1

sender將是調用對象。

- (IBAction)theActionDone:(id)sender; 

如果你有許多按鈕上面調用theActionDone:,該sender是按鍵呼叫(無論是電池或按鈕控制,無論哪種方式,你可以從那裏您的方式工作)。

3

爲每個按鈕分配一個唯一的tag屬性。然後,在你IBAction方法檢查:

- (IBAction)theActionDone:(id)sender 
{ 
    UIButton *button = (UIButton *)sender; 

    switch (button.tag) 
    { 
     case 1: 
     { 
      //do stuff for button one 
      break; 
     } 

     ... 
    } 
}