2012-08-17 148 views
1

簡單,但不工作!有人可以幫忙嗎?所有我想要的是隻需撥動一個UIButton的選擇,用下面的代碼:UIButton選擇不工作

-(IBAction) buttonPressed:(id)sender { 
    if ([self.mybutton isSelected]) { 
     NSLog(@"selected"); 
     [self.mybutton setSelected:NO]; 
    } else { 
     NSLog(@"not selected"); 
     [self.mybutton setSelected:YES]; 
    } 
    NSLog([self.mybutton isSelected] ? @"Yes" : @"No"); 
} 

雖然我按下按鈕任意次數,每次的,能打印的「不選擇」和「否」 。 爲什麼不是UIButton被設置爲'selected'狀態?

回答

3

當你的代碼似乎是正確的,你可以把它簡單的這樣:

-(IBAction) buttonPressed:(UIButton *)sender { 
    sender.selected = !sender.selected; 
} 

爲什麼你的代碼不能正常工作?可能self.mybuttonnil(你可以檢查出來)。請檢查您的出口連接和屬性定義... 參考:發送消息不是nil對象,返回要麼nil,或者如果它是一個簡單類型的默認值(0爲intNOBOOL,等..)

+0

我不確定問題在你回答之後是否被編輯過,但是; 如果mybutton爲零,那麼目標方法不會被調用。他不會得到nslog。 – Mert 2012-08-17 07:18:20

+2

這不是真的。當通過Interface Builder連接它們時,'IBOutlet'和'IBAction'是不同的和獨立的。我敢打賭,這完全是這種情況 - 與'mybutton'屬性的連接並不好。 – graver 2012-08-17 07:21:43

+0

Upps我的錯誤。你是對的。我不是一個接口的生成器可能是男人+1指出:) – Mert 2012-08-17 07:29:51