2014-02-15 57 views
1

我使用此代碼創建了一個自定義UIButton。自定義UIButton, - (IBAction)操作:(id)發送失敗

@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,我與NSLog的檢查。但它不是我的按鈕。它沒有任何初始化的SessionObject,它返回nil。難道我做錯了什麼?一些幫助會很好。

+0

OMG ..我清理項目和現在的工作:/ –

回答

1

嘗試用下面的代碼:

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

屬性sessionObj的類型蟒蟒蟒它說的對象沒有找到。 –

+0

更改方法聲明 - (IBAction)viewForSessions :(會話按鈕*)發件人 – iPatel

+1

OMG ..我清理了項目,現在它工作:/ –