2012-03-12 56 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; 
     } 

     ... 
    } 
}