0

当我实例化这个按钮类时,是否可以发送额外的参数,如下所示:?

BttClass *myButton = [[BttClass alloc] init];

如果是这样,正确的语法是什么?我一直在尝试各种! 我想发送一个 BOOL 和一个字符串。 谢谢。

4

3 回答 3

2

通过继承 UIButton 来扩展它。

//MyButton.h
@interface MyButton : UIButton {

}

@property (nonatomic, strong) NSString* aString;
@property (nonatomic, weak) BOOL aBool;

您需要定义一个初始化方法

-(id)initWithStringValue:(NSString *)stringValue andWithBoolValue:(bool)boolValue;

然后实现初始化方法

//MyButton.m
-(id)initWithStringValue:(NSString *)stringValue andWithBoolValue:(bool)boolValue {
    self = [super init];
    if (self) {
        self.aString = stringValue;
        self.aBool = boolValue;
    }
    return self;
}

在调用类中,您的代码看起来像

MyButton* myButton = [[MyButton alloc] initWithStringValue:@"tralala" andWithBoolValue:YES];
于 2012-05-18T13:21:22.950 回答
0

只需定义一个自定义初始化程序并传入您的值:

- (id)initWithBoolValue:(bool)boolValue stringValue:(NSString *)stringValue  {
    self = [super init];
    if (self) {
        // Custom initialization
    }
    return self;
}
于 2012-05-18T13:16:10.677 回答
0

创建您的自定义按钮

在你的

自定义按钮.h

@interface CustomButton : UIButton

    - (id)initWithBooleanValue:(BOOL)value;

@end

并在您的 CustomButton.m

- (id)initWithBooleanValue:(BOOL)value
{
    self = [super init];
    if (self)
    {
        NSLog(@"Bool = %d",value);
    }
    return self;
}

您可以使用此类代替普通的 UIButton

于 2012-05-18T13:18:31.797 回答