如何在不同按钮调用同一类时传递参数?

问题描述:

我为iPhone开发我正在开发的应用程序有许多按钮,我想所有的按钮调用同一类,但有不同的参数如何在不同按钮调用同一类时传递参数?

例如我想Button1以调用displayimageclass

和BUTTON2应该调用同样的类displayimageclass,所以,如何调用不同的方法调用相同的类,并在同一个类中如何从不同的按钮中调用特定的类来获取按钮。

可以实现这样的动作方法:

- (IBAction)action:(UIButton *)sender 
{ 
    //sender will be different for different button 
} 

这几乎是标准。根据需要定义许多IBAction方法。

在的viewController的.h文件中:

- (IBAction)actionButton1:(UIButton *)sender; 
- (IBAction)actionButton2:(UIButton *)sender; 
- (IBAction)actionButton3:(UIButton *)sender; 

,并在其.m文件:

{ 
    //react here to button1 pressed 
} 


- (IBAction)actionButton1:(UIButton *)sender 
{ 
    //react here to button1 pressed 
} 

- (IBAction)actionButton2:(UIButton *)sender 
{ 
    //react here to button2 pressed 
} 

- (IBAction)actionButton3:(UIButton *)sender 
{ 
    //react here to button3 pressed 
} 

然后用按钮的事件动作(TouchUpInside是最合适的,我猜)关联。对于按钮

设置标签值,并得到像

- (IBAction)action:(UIButton *)sender 
{ 
    UIButton *btn = (UIButton*)sender; 
} 

这些按钮,您应该标记属性添加到您的按钮。 假设你的按钮

button1.tag =1; 
button2.tag =2; 
button3.tag =3; 

当你点击任何按钮,NSLog的显示相关的按钮标签号码。即你会得到你想要的结果。

- (IBAction)buttonClicked:(id)sender { 

     UIButton* button = (UIButton *)sender; 
     NSLog(@"The number of tag:%d",button.tag); 
    } 

我认为这会对您有所帮助。

你是正在寻找 1)几个按钮,用相同的行为 2)几个按钮,执行相同的方法,但具有基于按钮的特性 3)每个按钮执行它自己的方法不同的行为,执行相同的方法。

1)您可以在同一个IBAction为注册几个按钮,它们都将调用它,并执行相同的代码 2)在这个方法中所有按钮的登记(CF:1),可以按键排序通过继承UIButton类,给出一个代表按钮应执行的枚举值,然后在被调用的方法中使用开关检查枚举值以触发想要的行为

UIBarButtonItem已经具有此标签属性,所以您可以通过提供一个值给每个在Interface Builder中你的UIBarButtonItem的使用它们,将它们设置为调用下面的方法

- (IBAction) myButtonsMethod:(id)object 
    if ([object isKindOfClass:[UIBarButtonItem class]]) 
    { 
    switch ([(UIBarButtonItem *)object tag]) 
    { 
     case myFirstTagValue 
    ... 
    } 

3)@Hermann Klecker溶液是正确的。