title: How does forwardingTargetForSelector: work?
body: <p>I have a <code>UIBarButtonItem</code>. When it receives a message it cannot handle, I want it to forward that message to a particular view controller.</p>
  
  <p>I thought I might be able to accomplish this using the bar button item's <code>forwardingTargetForSelector:</code> method, but apparently no such property is found on objects of type <code>UIBarButtonItem</code>. (Point of terminology: Does that mean <code>forwardingTargetForSelector:</code> is a private property? edit: Wait, I think I'm confused... methods with a colon at the end aren't properties... so can you ever make public a method (like a getter/setter) to which parameters are passed?)</p>
  
  <p>And does that mean that in order to set the value of <code>forwardingTargetForSelector:</code> I must do it from within the .m file of the object for which I want to set it? Which would mean that I would have to subclass my UIBarButtonItem?</p>
  
  <p>And if so, why is this not a public property of NSObjects?</p>
  
  <p>And moreover, what's the best way to achieve my forwarding goal, preferably avoiding subclassing?</p>
  
  <p>additional information:</p>
  
  <p>It all stems from my inclination to reuse a single action in response to various instances of an identical button being pressed. The action is currently contained in my delegate (see <a href="https://stackoverflow.com/questions/16557502/how-should-i-implement-identical-repeatedly-used-actions">How should I implement [almost] identical actions used throughout various VCs? (Answer: use a category)</a>) and varies only in that it should send a presentViewController message to the view controller that instantiated the button that sent the action. Thus, in the action, I can send a presentViewController message to <code>sender</code>, which is an instance of the button, and I want to be able to forward that message to the view controller that created that instance of the button, which I can do if I set each button's forwarding property immediately after it is instantiated in its respective view controller.</p>
  
  <p>I hoped to avoid the "why" just to make the question shorter, but there ya go.</p>