在不使用cocoa中的接口构建器的情况下调用uibutton的动作方法

Atm*_*tma 4 iphone cocoa-touch objective-c

我正在通过将按钮拖动到界面构建器中的视图来调用对象中的操作方法.然后我将一个对象拖到面板上,并使用action方法指定我的对象.我将我的按钮拖动到对象并选择我的操作方法.这适用于调用我的方法.

我想在没有uiview类的接口构建器的情况下调用我的action方法,而当前的nib是从uiview类派生的.

有谁知道我怎么能做到这一点?

NWC*_*der 10

我从第一个答案中以不同于Jasarien的方式阅读了这个问题.

如果您尝试使用按钮来响应单击,但是您想要在不使用IB的情况下设置所选目标方法,则它会像这样.

[myButton addTarget:self action:@selector(myMethod:) forControlEvents:UIControlEventTouchUpInside];
Run Code Online (Sandbox Code Playgroud)


Jas*_*ien 7

如果您的操作方法定义如下:

- (IBAction)myMethod:(id)sender;
Run Code Online (Sandbox Code Playgroud)

(sender参数完全是可选的),然后你可以调用

[self myMethod:self];
Run Code Online (Sandbox Code Playgroud)

IBAction只是一个定义的宏,允许Interface Builder获取可在Interface Builder中使用的方法.在预处理之后,它解析为void,因此运行时的方法签名是:

- (void)myMethod:(id)sender;
Run Code Online (Sandbox Code Playgroud)

就像任何其他方法一样.