【发布时间】:2014-03-14 19:35:21
【问题描述】:
我用这段代码创建了一个自定义 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 命名为发送者 A 按钮,我检查了 NSLog。但这不是我的按钮。它没有任何初始化的 SessionObject,它返回 nil。难道我做错了什么?一些帮助会很棒。
【问题讨论】:
-
OMG.. 我清理了项目,现在可以工作了:/