Iphone 以编程方式生成UIButton并将其与iAction关联

Iphone 以编程方式生成UIButton并将其与iAction关联,iphone,objective-c,xcode,ibaction,Iphone,Objective C,Xcode,Ibaction,如果我想通过编程生成一组按钮,然后将它们与iBaction关联,该怎么办?如果我在Interface Builder中添加按钮,这很容易,但在这种情况下我无法这样做 首先,创建按钮: UIButton * btn; btn = [ [ UIButton alloc ] initWithFrame: CGRectMake( 0, 0, 200, 50 ) ]; 然后添加一个操作: [ btn addTarget: self action: @selector( myMethod ) forCo

如果我想通过编程生成一组按钮,然后将它们与iBaction关联,该怎么办?如果我在Interface Builder中添加按钮,这很容易,但在这种情况下我无法这样做

首先,创建按钮:

UIButton * btn;

btn = [ [ UIButton alloc ] initWithFrame: CGRectMake( 0, 0, 200, 50 ) ];
然后添加一个操作:

[ btn addTarget: self action: @selector( myMethod ) forControlEvents: UIControlEventTouchDown ];
然后将按钮添加到视图中:

[ someView addSubView: btn ];
[ btn release ];

按钮具有方法
-(void)addTarget:(id)target action:(SEL)action for controlEvents:(UIControlEvents)controlEvents

使用此选项的代码如下所示:

UIButton *myButton = [[UIButton alloc] init...];
[myButton addTarget:something action:@selector(myAction) forControlEvents:UIControlEventTouchUpInside];

这假设您的iAction命名为
myAction
,并且
something
是为其定义该操作的控制器。

为UIButton指定选择器时,是否必须使用单个参数命名方法,即所选按钮id?如果我指定了一个没有参数的方法,会发生什么?太好了,谢谢!我会尝试一下,但这看起来像我要找的。@mattmccomb:从文档中可以看出:“操作消息可以选择按此顺序将发送者和事件作为参数包含。”您可以有一个带有零、一或两个参数的方法作为操作。但别忘了在每个参数的操作名称末尾添加:。