Search code examples
iosiphonecocoa-touchinterface-builderibaction

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


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?


Solution

  • 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.