2012-05-07 4 views
1

私はViewControllerを持っています。何らかの理由で、私はlabel.textをAppDelegate.mから設定する必要があります。 どうすればいいですか?label.textをAppDelegate.mに設定する

私はこのコードをしようと試みてきたが、成功しません:私はウェブサイトからJSONを取得していますし、私はapplicationWillEnterForeground:でも、それを行う必要があるので、

- (void)applicationWillEnterForeground:(UIApplication *)application 
{ 
    HomeViewController *home = [[HomeViewController alloc] init]; 
    home.dateCreatedLabel.text = @"date createdddd"; 
} 

私はAppDelegateでこれを入れなければならない理由があります毎回更新をチェックし、コアデータの更新を解決しましたが、label.textを変更する方法はありませんでした。

HomeViewControllerを更新するにはどうすればよいですか?

+1

いくつかのコードを投稿できますか? –

+0

は必要ありません。自分で説明しました。 –

+0

AppDelegateからラベルを設定する理由を想像できません。なぜあなたはこれをやっているのですか? –

答えて

-1

だけプロパティを割り当てるのViewControllerの初期化時のViewControllerの.hファイルにし、appdelegate.mに、この方法では

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

をそのためのプロパティを1つ作成します。

+0

最初の投稿にサンプルコードを追加 – CroiOS

2

まず、他の回答のいくつかに応じて、パブリックインターフェイスの特定のUIコンポーネントをビューまたはビューコントローラに公開するのは実際には難しいことではありません。

たとえば、Appleはテーブルビューのセルで、ラベルとビューを直接公開することから始めました。これは、開発者にとっては簡単で柔軟性が高いためです。彼らは今やtextLabelのためのプロパティを持っていますが、以前は彼らはsetText:メソッドしか持っていませんでした。つまり、ラベルのテキストを設定するだけでなく、ラベル自体に必要なものをカスタマイズすることができます。

あなたのケースでは、ラベルをビューコントローラの標準プロパティとして公開し、それをアプリケーションデリゲートからアクセスできます。しかし、アクセスする前に、View Controllerのビューがロードされていることを確認する必要があります。そうしないと、labelプロパティはnilを返します。あなただけのコントローラ上-view方法を照会することにより、ロードするためのビューを強制することができます。

// force view to load 
[viewController view]; 
// and now access the label 
viewController.label.text = @"whatever"; 

アプリデリゲートからのビューコントローラへの参照/ポインタを取得する方法を見つけ出す必要がある場合、あなたはできるはずですルートビューコントローラ上のプロパティに潜んでもらうか、または委譲を使用して、アプリケーションデリゲートがデリゲートインターフェイスを実装してラベルのテキストを提供できるようにします。

EDIT:あなたがラベルにアクセスする前にこれを行う必要があるようにサンプルコードを使用して更新に応じて

が、それは間違いなくなります。しかし、警告の

// force view to load 
[home view]; 
home.dateCreatedLabel.text = @"date createdddd"; 

一言:あなたの場合メモリ警告のためにビューコントローラがアンロードされると、以前に設定したテキストは失われます。

NSDateプロパティを使用してビューコントローラで日付を設定し、プロパティが変更されたときにラベルのテキストを設定するビューコントローラを取得し、-viewDidLoadで日付を設定することをお勧めします。

+0

サンプルコードを最初の投稿に追加しました – CroiOS

関連する問題