2011-01-26 7 views
0

最初に私は新人ですので、何か助けに感謝します。私は、ボタンが開始されるたびにボタンのタイトルを変更するために次のコードを書いています。コードをテストすると、新しいボタンのラベルが数秒間表示され、ボタンがもう一度空白になります(最初から始まったように)。私は最初の3回のタッチしか見ることができないので、カウント方法にも何か問題があると考えています。コードは次のとおりです。目的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にイベントを送信することがわかっている場合は、最初の引数を直接(UIButton *)にすることができます。一般的なIDである必要はありません。 – ZaBlanc

関連する問題