2011-01-26 23 views
0

首先我是一名菜鳥,所以任何幫助表示讚賞。我已經編寫了下面的代碼,在每次啓動時更改按鈕的標題。當我測試代碼時,我可以看到新的按鈕標籤幾分之一秒,然後再次按下按鈕(因爲它已經開始)。我只看到前三次觸摸,所以我在想我的計數方法也有問題。代碼如下:Objective C - 幫助顯示變量標題的UIButton

-(IBAction)pressButton:(id)sender { 
static int counter = 0; 

if (counter == 0) { 
    [[sender titleLabel] setText:@"not answered"]; 
}else if (counter == 1) { 
    [[sender titleLabel] setText:@"Pressed Once"]; 
}else if (counter == 2) { 
    [[sender titleLabel] setText:@"Pressed Twice"]; 
} 
counter += 1; 

if (counter >2) { 
    counter = 0; 
} 
} 

預先感謝您的幫助!

回答

3

你想使用:

[(UIButton *)sender setTitle:@"XXX" forState:UIControlStateNormal]; 

設置標籤直接被行不通的,因爲它是由按鈕邏輯內部操作。

+0

+1您還需要將其'UIControlStateHighlighted'設置爲新文本,或者當用戶點擊它時按鈕文本將更改爲舊狀態。 –

+0

謝謝!在我提出建議的更改並更改了計數器的邏輯之後,它很好用。 –

+1

順便說一句,如果你知道只有按鈕會發送事件到pressButton,你可以直接創建第一個參數a(UIButton *)。它不一定是通用的ID。 – ZaBlanc