我正在为iPhone开发我正在开发的应用程序有很多按钮,我希望所有按钮都调用相同的类但具有不同的参数
例如我想要button1来调用displayimageclass
和button2应该调用相同的类displayimageclass,如何不同的方法调用同一个类,并在同一个类中如何从它调用特定类的位置获取不同的按钮。
答案 0 :(得分:1)
这几乎是标准的。只需根据需要定义尽可能多的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
}
然后将动作与Button的事件相关联(TouchUpInside最合适,我猜)。
答案 1 :(得分:1)
您应该为按钮添加标签属性。 假设您的按钮是
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);
}
我认为这会对你有所帮助。
答案 2 :(得分:0)
你可以像这样实现你的行动方法:
- (IBAction)action:(UIButton *)sender
{
//sender will be different for different button
}
答案 3 :(得分:0)
设置按钮的标记值并获取
之类的按钮- (IBAction)action:(UIButton *)sender
{
UIButton *btn = (UIButton*)sender;
}
答案 4 :(得分:0)
1)您可以在同一个IBAction上注册几个按钮,它们都会调用它并执行相同的代码 2)在方法中,所有按钮都被注册(参见:1)可以通过继承UIButton类对按钮进行排序,给出一个表示按钮应该执行的内容的枚举值,然后在被调用的方法中检查枚举值用一个开关来触发想要的行为
UIBarButtonItem已经具有此标记属性,因此您可以通过为Interface Builder中的每个UIBarButtonItem赋值并将它们设置为调用以下方法来使用它们
- (IBAction) myButtonsMethod:(id)object
if ([object isKindOfClass:[UIBarButtonItem class]])
{
switch ([(UIBarButtonItem *)object tag])
{
case myFirstTagValue
...
}
3)@Hermann Klecker解决方案是正确的。