【发布时间】:2010-07-23 02:33:17
【问题描述】:
我有以下方法
-(IBAction)back:(id)sender {
}
并且希望能够知道发件人 ID。
例如如果有多个按钮链接到此方法,我想知道按下了哪个按钮。
【问题讨论】:
标签: iphone objective-c uibutton
我有以下方法
-(IBAction)back:(id)sender {
}
并且希望能够知道发件人 ID。
例如如果有多个按钮链接到此方法,我想知道按下了哪个按钮。
【问题讨论】:
标签: iphone objective-c uibutton
只需在switch语句中使用标签属性,继承自UIView,它是一个NSInteger,或者使用if条件。
tag 属性可以在你的代码中设置,也可以通过 InterfaceBuilder 设置。
【讨论】:
[发件人标签]
我不知道你所说的“id”是什么意思(“sender”是一个 id,实际上是一个 NSObject *),但你可以使用标签。您必须事先在 Interface Builder 中或以编程方式设置标签。
【讨论】:
如果您为界面中的按钮设置了 IBOutlets,那么您可以简单地将发送者与这些按钮进行比较。
如果你有,那在你的接口定义中
...
(IBOutlet) UIButton *button1;
(IBOutlet) UIButton *button2;
...
在你的实现中你有:
- (IBAction) buttonPressed: (id) sender
{
if (sender == button1) {
....
}
else if (sender == button2) {
...
}
}
就个人而言,我更喜欢为每个按钮使用不同的操作方法,然后它们都可以为常见的事情调用一个通用的例程。但是,对于简单的项目,上述方法将起作用。
-J
【讨论】:
将每个按钮的 tag 属性设置为唯一整数(在 IB 中或以编程方式)并在您的操作方法中打开它。
【讨论】: