使用代码中调用IBACTION的最佳方法是什么?
-
04-10-2019 - |
题
例如,我有一个 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
(这可以使您的控制器实施保持清洁)。
不隶属于 StackOverflow