从代码中调用IBAction的最佳方式是什么?
说例如我有一个IBAction是连接到一个UIButton在界面生成器。
- (IBAction)functionToBeCalled:(id)sender { // do something here }
在我的代码中,例如用另一种方法说,调用这个IBAction的最好方法是什么?
如果我尝试像这样调用它,我收到一个错误:
[self functionToBeCalled:];
但是,如果我尝试像这样调用它(我认为有一点欺骗),它可以正常工作:
[self functionToBeCalled:0];
什么是适当的方式来正确调用它?
正确的方法是:
- [self functionToBeCalled:nil]
传递一个零发送者,表明它没有通过通常的框架调用。
要么
- [self functionToBeCalled:self]
作为发送者传递自己,这也是正确的。
select哪一个取决于函数到底是什么,以及它期望的发送者是什么。
国际海事组织调用IBAction
应仅由UI操作触发(例如button点击)。 如果你需要从多个地方运行一些代码,那么你可以从IBAction中提取这个代码到一个新的方法中,然后从这两个地方调用这个方法
- (IBAction)onButtonTap:(id)sender { [self doSomething]; }
这允许您根据发件人执行额外的逻辑(也许您可能会将相同的操作分配给多个button,并根据sender
参数决定要执行的操作)。 而且还减less了在IBAction
编写的代码量(这可以使您的控制器实现干净)。