0

我的 iOS 应用在单个视图控制器上有 13 个按钮。单击它们中的每一个都会打开一个popovercontroller。不是一下子。苹果规则,我知道。您单击您选择的一个,然后将其关闭并为其他按钮执行此操作并继续。现在我有一个代表告诉我我在弹出窗口上选择了什么选项。像 Button1 popovervalues-( 1,2,3) Button2 popovervalues- (a,b,c)。现在委托中的方法告诉我选择了 1 或选择了 a。但它没有告诉我 Button1 被点击或 button2。我想知道如何获取按钮控件名称/或现在仅获取按钮就足够了。是否有任何属性可以告诉我单击了哪个按钮?我看到了 popovercontroller 的 contentviewcontroller、inputview、navigationcontroller 等。但都没有帮助我找到被点击的按钮。我想知道,因为如果在 Button1 的弹出窗口中选择了选项 1,那么我必须禁用 Button10。因此,知道选择了哪个按钮的哪个选项将简化用户选择(实际上是一个要求)。如果需要更多信息,请告诉我。谢谢..

4

2 回答 2

0

您是否通过界面生成器连接按钮?如果是这样,那么它应该通过 IBAction 方法连接。

- (IBAction)someAction:(id)sender {
   UIButton *buttonPressed = (UIButton *)sender;
   //Now you have the button you have pressed
}

如果您以编程方式制作按钮并将目标添加到其中请注意选择器位中 someAction 之后的冒号

[myButton addTarget:self action:@selector(someAction:) forControlEvents:UIControlEventTouchDragInside];

您可以使用与之前的 IBAction 相同的方法,或者您可以制作自己的 void 方法,无论哪种方式,发送者都是按钮,只需转换它然后使用它。

希望这可以帮助。

于 2012-11-01T14:52:00.413 回答
0

使用按钮的标签值。设置一个数字并在 action 方法中检查它:

- (IBAction)buttonAction:(id)sender {
   UIButton *buttonPressed = (UIButton *)sender;
   if(buttonPressed.tag == 1) {
        //Do this
   }
}
于 2012-11-01T14:55:13.770 回答