【问题标题】:Adding arguments to selector in addTarget在 addTarget 中向选择器添加参数
【发布时间】:2011-05-25 13:42:11
【问题描述】:

我在向按钮的选择器(以编程方式创建)添加参数时遇到问题。我在互联网上四处寻找并尝试了一些东西,但我无法弄清楚。

我用下面一行创建了一个按钮:

NSString *someThing = [[NSString alloc] initWithString:@"someThing"];
int counter = 4;
[anotherButton addTarget:self action:@selector(alertPressed:) forControlEvents:UIControlEventTouchUpInside];

我有函数alertPressed

-(void)alertPressed:(id)sender {

}

如何将这两个变量转移到alertPressed

【问题讨论】:

  • @Till:我唯一从那个线程中得到的东西是不可能的,因为我只能使用三种形式的选择器吗?我只想将一个变量传递给该方法...
  • 我知道您的意图,我提供的链接清楚地向您解释了这是不可能的。

标签: iphone objective-c xcode arguments selector


【解决方案1】:

您可以使用包含这些属性的自定义按钮来继承 UIButton。然后,您的(id)sender 可以转换为您的自定义按钮,您可以获得设置值。

【讨论】:

    【解决方案2】:

    为什么你的类中没有全局变量或属性?

    【讨论】:

    • 因为我有多个按钮链接到同一个功能,所以这取决于按下什么按钮。这些按钮是在一个循环中创建的:例如,它们可以是其中的 10000 个。这个类足够大,我可以再次使用一个属性,但它应该很容易转移,不是吗?
    • 在这种情况下,我将使用上面链接中所述的 UIButton 的“tag”属性,并根据 alertPressed 中的按钮设置变量。我认为您不能以其他方式转移这些变量...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-17
    • 2016-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-17
    相关资源
    最近更新 更多