You can use the layer property. Add the object you want to pass as a value in the layer dictionary.
[[btn layer] setValue:yourObj forKey:@"yourKey"];
This one yourObjis available from the button action function:
-(void)btnClicked:(id)sender
{
yourObj = [[sender layer] valueForKey:@"yourKey"];
}
Using this method, you can pass multiple values to the button function by simply adding new words to the dictionary with different keys.