Ios 未使用interface builder时是否需要iAction

Ios 未使用interface builder时是否需要iAction,ios,interface-builder,Ios,Interface Builder,即使我们在不使用interface builder的情况下以编程方式创建UI元素(如下面的切换按钮),我们是否仍然需要使用iAction作为触摸事件处理方法的类型?对于下面的onToggle:方法,我们是否可以使用void而不是iAction 例如,在MyUIViewController.m [[self toggleButton] addTarget:self action:@selector(onToggle:) forControlEvents:UIControlEventTouchUpI

即使我们在不使用interface builder的情况下以编程方式创建UI元素(如下面的切换按钮),我们是否仍然需要使用
iAction
作为触摸事件处理方法的类型?对于下面的
onToggle:
方法,我们是否可以使用
void
而不是
iAction

例如,在
MyUIViewController.m

[[self toggleButton] addTarget:self action:@selector(onToggle:) forControlEvents:UIControlEventTouchUpInside];
同样在
MyUIViewController.m
中,
onToggle:
方法的编写方式如下:

- (IBAction) onToggle:(UIButton *)button {
    // Actions
}

不,
iAction
是Interface Builder操作,因此如果不使用Interface Builder,则不必使用它

用这个代替

- (void) onToggle:(UIButton *)button {
    // Actions
}

不,它不是-它只是用作IB的出口引用。不,在这种情况下,您不需要使用IBAction。对于@rokjarc,因此我可以使用
-(void)onToggle:(UIButton*)按钮{}
?是的,您可以使用它。
IBOutlet
只是一个定义为“void”的预编译器宏。因此,它只是一种向界面生成器说明情况的声明方式。然而,有时
IBAction
有助于理解代码(更快地理解在用户操作后调用此方法)。但是只要你的代码是干净的并且容易理解。。。