I want to add multiple methods in that respond as the selector when a button is pressed. Can one button have two methods that get called when the button is pressed?
Through my research, I found, in the objective-C Programming Language Guide, that a button will call All methods with the same name as the selector.
I want my button to do two actions at the same time:
display views in array.
UIBarButtonItem *play = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemPlay target:self action:@selector(play:)];
Appreciate advice.
Thanks
@selector()
literally just returns a SEL value, which is just a name (in fact, under the hood, it's literally a string). It doesn't specify any particular behavior. Classes choose how to respond when they're sent a selector.
You could certainly have a class implement a method that does two things and set the selector for that method to be a control's action:
- (void)eatCakeAndIceCream {
[self eatCake];
[self eatIceCream];
}
You can also add multiple actions to a control with repeated calls of addTarget:action:forControlEvents:
:
[someControl addTarget:self action:@selector(eatCake) forControlEvents:UIControlEventTouchDown];
[someControl addTarget:self action:@selector(eatIceCream) forControlEvents:UIControlEventTouchDown];
You can specify multiple target-action pairs for a particular event.
[btn addTarget:self action:@selector(playSound:) forControlEvents:UIControlEventTouchUpInside];
[btn addTarget:self action:@selector(displayViews:) forControlEvents:UIControlEventTouchUpInside];
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With