将按钮的目标和选择器设置为多个方法

use*_*133 4 iphone methods objective-c selector

我想添加多个方法,在按下按钮时作为选择器响应.按下按钮时,一个按钮可以有两个被调用的方法吗?

通过我的研究,我发现,在Objective-C Programming Language Guide中,一个按钮将调用所有方法与选择器同名.

我希望我的按钮可以同时执行两个操作:

  1. 播放音频文件
  2. 显示数组中的视图.

    UIBarButtonItem*play = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemPlay target:self action:@selector(play :)];

欣赏建议.

谢谢

Chu*_*uck 10

@selector()字面上只返回一个SEL值,这只是一个名字(事实上,在引擎盖下,它实际上是一个字符串).它没有指定任何特定的行为.类选择在发送选择器时如何响应.

你当然可以有一个类实现一个方法来完成两件事,并将该方法的选择器设置为一个控件的动作:

- (void)eatCakeAndIceCream {
    [self eatCake];
    [self eatIceCream];
}
Run Code Online (Sandbox Code Playgroud)

您还可以通过重复调用向控件添加多个操作addTarget:action:forControlEvents::

[someControl addTarget:self action:@selector(eatCake) forControlEvents:UIControlEventTouchDown];
[someControl addTarget:self action:@selector(eatIceCream) forControlEvents:UIControlEventTouchDown];
Run Code Online (Sandbox Code Playgroud)