如何在不同按钮调用同一类时传递参数?
我为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溶液是正确的。