6

最初のテキスト「映画のタイトル」を持つ .storyboard ファイルに UILabel を作成しました。その UILabel を ViewController ファイルで定義されたプロパティに接続しました。何らかの理由で、シミュレーターを実行するとテキストが UI に表示されません。同様の質問を見てきましたが、役立つ回答は見当たりませんでした。

.h ファイルに次のプロパティがあります

@property (strong, nonatomic) IBOutlet UILabel * movieTitle;

それは私の.mファイルで合成されています

@synthesize movieTitle;

次に、次のことを行うコードがあります。

NSLog(@"movie details title in Movie object: %@", _movie.name);
self.movieTitle = [[UILabel alloc] init];
[self.movieTitle setText:self.movie.name];
NSLog(@"movie details title in UILabel.text: %@",self.movieTitle.text);

コンソールは次のように出力します

movie details title in Movie object: Transformers
movie details title in UILabel.text: Transformers
4

3 に答える 3

7

textメインスレッドでプロパティを設定していることを確認してください。そうしないと、値が更新されますが、ラベルは再描画されません。すべてのUIKit要素は、メイン スレッドでのみ更新する必要があります。

また、Interface Builder で にUILabel接続していない場合にのみ、2 番目を作成する必要があります。IBOutlet

于 2011-11-25T18:31:56.377 に答える
3

movieTitleがInterfaceBuilderに接続されている場合はUILabel;、別のインスタンスを作成しないでください。

self.movieTitle = [[UILabel alloc] init];

UILabelGUIではないテキストを設定しています。

その行を削除するだけです。以下を参照してください。

NSLog(@"movie details title in Movie object: %@", _movie.name);
[self.movieTitle setText:self.movie.name];
NSLog(@"movie details title in UILabel.text: %@",self.movieTitle.text);
于 2011-11-25T18:29:38.077 に答える