多个UIButton 1功能

Cri*_*ter 3 iphone objective-c uibutton iboutlet ibaction

基本上我需要在视图中有几个按钮.我希望他们都能调用一个函数,这样我就可以跟踪'状态'.

如何判断哪个按钮称为该功能?无论如何得到发件人的文字?

Jon*_*nah 5

在iOS中,操作方法(包括IBAction方法)可以具有以下任何签名(请参阅" UIKit中的目标操作 "):

- (void)action
- (void)action:(id)sender
- (void)action:(id)sender forEvent:(UIEvent *)event
Run Code Online (Sandbox Code Playgroud)

如果您使用接受发件人的方法签名,则您可以访问触发该操作的对象.然后,您可以访问调用对象上的属性,包括其标题和标记.您还可以将发件人与您可能已经拥有的指针进行比较,以确定哪个按钮是此特定事件的发件人.

我赞成比较指针,因为我相信这if (sender == self.nextPageButton)更容易理解,并且不太可能破坏if (sender.tag == 4)if ([((UIButton *)sender).currentTitle isEqualToString:@"foo"]).查看IB中的标签不会告诉您代码假设它们的含义以及它们是否重要.标题将在您更新UI或本地化您的应用时更改,这些更改也不需要更改代码.