自定义UIButton, - (IBAction)操作:(id)发件人失败

时间:2014-02-15 10:34:48

标签: ios uibutton

我使用此代码创建了一个自定义UIButton。

@implementation SessionButton

- (id)initWithFrame:(CGRect)frame withSessionObject:(SessionObject*)obj
     {
        self = [super initWithFrame:frame];
        if (self) {
        self.sessionObj = obj;
    }
    return self;
}
@end

并用此分配......

SessionButton *button = [[SessionButton alloc] initWithFrame:CGRectMake(70, (startHour - 7)*80 + startMinute + 2, 220, height -4) withSessionObject:obj];

当我尝试用NSLog检查它时,它是完美的。我用我的对象初始化了按钮。

现在我必须给它一个动作。所以我写了这个。

[button addTarget:self
               action:@selector(viewForSessions:)
     forControlEvents:UIControlEventTouchUpInside];

这是viewForSessions方法:

- (IBAction) viewForSessions:(id)sender {
    SessionButton *mBut = (SessionButton*) sender;
    SessionObject *obj = mBut.sessionObj;
    NSString *title = nil;
    switch (obj.type) {
        case 2:
            title = @"Konferans";
            break;
        case 3:
            title = @"Panel";
            break;
        case 4:
            title = @"İnteraktif";
            break;
        case 5:
            title = @"Forum";
            break;
    } //and it goes on....... a bit long

我的问题是,在调用选择器后, id 命名为sender A 按钮,我检查了NSLog。但它不是我的按钮。它没有任何初始化的SessionObject,它返回nil。难道我做错了什么?一些帮助会很棒。

1 个答案:

答案 0 :(得分:1)

尝试使用以下代码:

- (IBAction) viewForSessions:(SessionButton *)sender 
{
    SessionObject *obj = sender.sessionObj;
    NSString *title = nil;
    switch (obj.type) {
    .
    .
}