2012-05-09 1 views
0

私のアプリでは奇妙な問題に直面しています。iPhone:UIButtonのテキストが 'nil'にならない

私のViewDidLoad()メソッドで私は以下のように私のボタンのタイトルを設定しました。

[btnA setTitle:@"A" forState:UIControlStateNormal]; 

別のクリックイベントで、次のようにこのタイトルの値をnilに設定します。

[btnA setTitle:nil forState:UIControlStateNormal]; 

しかし

NSLog(@"btnA:%@",btnA.titleLabel.text); 

を次のように私はすぐに上記のステートメントの後にログを印刷するとき

btnA:A 

と妙に私はのテキストをシミュレータでアプリを実行して次のようにログを出力しますボタンは私に何も表示されないので、クリックイベントではゼロになります。

問題はありますか?

+0

'setTitle:nil'の代わりに' setTitle:@ "" 'を実行する必要があると思います。 As ** **文字列はありませんが、空の文字列があります。 ** nil **は基本的にオブジェクトであり文字列ではありません。 –

答えて

1

あなたがsetTitle @" " . を行うことができます遅延

- (IBAction)produceImage:(id)sender 
{ 

    // Call another function which setthe title after delay 

    [self performSelector:@selector(title:) withObject:sender afterDelay:2]; 

} 

- (IBAction)title:(id)sender 
{ 
    [sender setTitle:@"" forState:UIControlStateNormal]; 

     NSLog(@"sender:%@",sender.titleLabel.text); 


} 
1
[btnA setTitle:@"" forState:UIControlStateNormal]; 

またはset btnA = nil;

2

あなたは、このような空の文字列にタイトルを設定することができます。

[btnA setTitle:@"" forState:UIControlStateNormal]; 
+0

私はこの解決策を試しましたが、答えが得られませんでした。 –

+0

これは私がこれをテストして動作するはずです。多分あなたは何かを変えました。これらの3行を '-ViewDidLoad'に書くと、新しいボタンの結果はどうなりますか? –

+0

@ K.P .: Justin Booの答えに何が間違っていたのですか? –

-1

で次のコード

button.titleLabel.text = @""; 

または独自のコードトライでお試しくださいあなたがボタンから値をもう一度得ると、setTitle @ "" "or nil`は役に立たない、それはgivあなたは前の値

関連する問題