如何以编程方式触发UIButton操作

12

我有一个类里面有几个不同的按钮,他们的动作是分开的。我在另一个类里创建了该类的实例,并且在第二个类中有一个 UIButton 数组。我希望能通过编程方式调用每个按钮的动作。在 iOS 中有没有这样的方法?

3个回答

34

UIButton有一个方法可以调用链接到特定控件事件的目标/选择器:

[button sendActionsForControlEvents:UIControlEventTouchUpInside];

2022年的Swift语法:

someButton.sendActions(for: .primaryActionTriggered)


20

对于 Swift 3.0/4.0/5.0:

button.sendActions(for: .touchUpInside)

请确保将此内容添加到按钮的 IBOutlet 上,而不是 IBAction 上—— .sendAction(for: .touchUpInside) 部分可能会使您困惑。 - Dan M
UIBarButtonItem没有.sendAction成员。有没有一种以编程方式调用此对象的操作的方法? - Arthur Rees

0
您可以通过传递UIbutton id,将第一个类的方法作为实例方法从其他类中简单地调用。
例如: 在第一个类“ClassA”中。
- (IBAction)classAbuttonAction1:(id)sender;
- (IBAction)classAbuttonAction2:(id)sender;

来自另一个类

UIButton *bClassButton = [[UIButton alloc]init];    
ClassA *instance = [[ClassA alloc]init];

[instance classAbuttonAction1:bClassButton];
[instance classAbuttonAction2:bClassButton];

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接