まず第一に、他のいくつかの回答に応えて、パブリック インターフェイスで特定の UI コンポーネントをビューまたはビュー コントローラーに公開することは、実際には悪い考えではありません。
たとえば、Apple は、ラベルとビューを直接公開することでテーブル ビュー セルでこれを開始しました。これは、開発者にとってより簡単で柔軟性があるためです。textLabel
そのため、以前はメソッドしかありませんでしたが、現在はプロパティがありますsetText:
。これは、ラベル テキストを設定できるだけでなく、ラベル自体に必要なその他の項目をカスタマイズできることを意味します。
あなたの場合、ラベルをView Controllerの標準プロパティとして公開し、アプリデリゲートからアクセスできます。ただし、アクセスする前に、View Controller のビューが読み込まれていることを確認する必要があります。読み込まれていない場合、label プロパティは nil を返します。-view
コントローラーでメソッドをクエリするだけで、ビューを強制的にロードできます。
// force view to load
[viewController view];
// and now access the label
viewController.label.text = @"whatever";
アプリデリゲートからビューコントローラーへの参照/ポインターを取得する方法を理解する必要がある場合は、ルートビューコントローラーのプロパティに飛び込むか、アプリデリゲートがデリゲートインターフェイスを実装できるようにデリゲートを使用できる必要がありますラベルのテキストを指定します。
編集:
サンプルコードを使用した更新に応じて、ラベルにアクセスする前にこれを行う必要があるようです:
// force view to load
[home view];
home.dateCreatedLabel.text = @"date createdddd";
ただし、警告の 1 つ: ビュー コントローラーがメモリ警告のためにアンロードされた場合、以前に設定したテキストは失われます。
プロパティを使用してView Controllerに日付を設定しNSDate
、プロパティが変更されたときにView Controllerにラベルのテキストを設定させ、-viewDidLoad
.