What's the best way to call an IBAction from with-in the code?

iwasrobbed picture iwasrobbed · May 22, 2010 · Viewed 24k times · Source

Say for instance I have an IBAction that is hooked up to a UIButton in interface builder.

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

}

With-in my code, say for instance in another method, what is the best way to call that IBAction?

If I try to call it like this, I receive an error:

[self functionToBeCalled:];

But, if I try to call it like this (cheating a bit, I think), it works fine:

[self functionToBeCalled:0];

What is the proper way to call it properly?

Answer

Jakob Borg picture Jakob Borg · May 22, 2010

The proper way is either:

- [self functionToBeCalled:nil] 

To pass a nil sender, indicating that it wasn't called through the usual framework.

OR

- [self functionToBeCalled:self]

To pass yourself as the sender, which is also correct.

Which one to chose depends on what exactly the function does, and what it expects the sender to be.