1

除了在下面的代码中使用 button.tag 之外,有没有办法将布尔值传递给 addClicked 方法?

[cellview.buttonAdd addTarget:self action:@selector(addClicked:) forControlEvents:UIControlEventTouchUpInside];

-(void) addClicked:(id)sender {

}

提前致谢。

4

3 回答 3

3

如果要添加整数属性,可以使用标签。如果要添加非整数属性,则必须使用具有关联引用的类别,继承的 UIButton 根本无法发布属性。你可以看到这个:

子类 UIButton 添加属性

于 2012-08-02T05:27:02.967 回答
2

尝试这样的事情:

-(void) addClicked:(id)sender
{
    UIButton * button = (UIButton*)sender;
    NSLog(@"Button Tag: %i", button.tag);
}

不确定通过 Boolean是什么意思。

于 2012-08-02T03:49:38.763 回答
1

简短回答:您不能直接将额外信息传递给方法。

你为什么要这样做呢?除了被点击的事实之外,按钮“知道”它需要交流什么?

应该通过实现单击处理程序的类中的实例变量来完成此操作。

如果您确实必须在按钮本身内部维护状态,请将其子类化:

@interface CustomButton : UIButton

@property (nonatomic, assign) BOOL myBoolValue;

@end

/* ... */

- (void)addClicked:(id)sender
{
    CustomButton *button = (CustomButton *)sender;
    if (button.myBoolValue) {
        // Whatever you want to do.
    }
}
于 2012-08-02T03:50:50.547 回答