例如,我有一个 ibaction 那被连接到 Uibutton 在接口构建器中。

- (IBAction)functionToBeCalled:(id)sender
{
   // do something here   

}

使用我的代码,例如用另一种方法说,什么是最好的方式 ibaction?

如果我尝试这样称呼,我会收到一个错误:

[self functionToBeCalled:];

但是,如果我试图这样称呼它(我认为有点作弊),它可以正常工作:

[self functionToBeCalled:0];

正确称呼它的正确方法是什么?

有帮助吗?

解决方案

正确的方法是:

- [self functionToBeCalled:nil] 

通过零发件人,表明它没有通过通常的框架来调用。

或者

- [self functionToBeCalled:self]

将自己当作发件人,这也是正确的。

选择哪一个取决于该功能的确切功能以及发件人的期望。

其他提示

从语义上讲,打电话给 IBAction 应仅由UI事件触发(例如按钮点击)。如果您需要从多个位置运行相同的代码,则可以从 IBAction 进入专用方法,并从两个地方调用该方法:

- (IBAction)onButtonTap:(id)sender {
    [self doSomething];
}

这使您可以根据发件人执行额外的逻辑(也许您可以将相同的操作分配给多个按钮,并根据该按钮决定要做什么 sender 范围)。还减少了您需要在 IBAction (这可以使您的控制器实施保持清洁)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top