カスタムのinitWithNibNameメソッドでUILabelをプログラムで割り当て、後でviewDidLoadで文字列を割り当てようとしたとき、ラベルに何も指されませんでした。私はそれを解放しなかった。ラベルが画面に表示されます。 IBでラベルを作成し、viewDidLoadでそのラベルにテキストを割り当てると、そのラベルが機能します。IBオブジェクトとinit/viewDidLoadの手動で割り当てられたオブジェクト
手動で割り当てられたオブジェクトをviewDidLoadに設定することはできますか? 私のinitの後にviewDidLoadが呼び出されたにもかかわらず、それが何かを指していないのはなぜですか? viewDidLoadのDOCから
:ビューコントローラはメモリにその関連のビューをロードした後
このメソッドが呼び出されます。このメソッドは、ビューがnibファイルに格納されているか、loadViewメソッドでプログラムによって作成されたものかにかかわらず呼び出されます。このメソッドは、nibファイルからロードされたビューに対して追加の初期化ステップを実行するために最も一般的に使用されます。私のinitで
:のviewDidLoadで
_descriptionLabel = [[UILabel alloc] initWithFrame:CGRectMake(20, 218, 280, 10)];
_descriptionLabel.numberOfLines = 0;
_descriptionLabel.lineBreakMode = UILineBreakModeWordWrap;
_descriptionLabel.font = [UIFont systemFontOfSize:12.0];
_descriptionLabel.adjustsFontSizeToFitWidth = NO;
_descriptionLabel.text = @"Description not found.";
_descriptionLabel.backgroundColor = [UIColor clearColor];
は、変数の値は0x0です。 手動で割り当てられたUIButtonと同じです。これは、ビューが読み込まれると完全に機能します。
動作しないサンプルコードを表示できますか?私はあなたが何を意味するのかわからない "ラベルは何も指していない" – stefanB
説明のために編集されたオリジナルのポスト。 – hyn
UILabelをIBで作成しましたか?それはIBOutlet UILableとして定義されており、IBのウインドウ上のUILabelに接続されているか、それとも実用的に作成しようとしていますか? UILable * descLabel = [[...]]? – stefanB