2012-02-05 12 views
1

こんにちは私はviewviewrollerをタブビューコントローラに持っています。私は、NSNotificationを使用して、タブビューコントローラのビューでデータを更新する必要があるときにフラグを立てることにしました。これまでは、それぞれがデータモデルの状態を決定し、それに応じて更新するための論理を持っていました。ビューコントローラが完全に初期化される前にNSNotificationが呼び出されました

私の更新コードは、デリゲートメソッドを呼び出すいくつかのものを呼び出します。通知を使用しない場合、これらはすべて機能していました。

私が最初に通知したのは、ビューコントローラが初期化されてから(少なくともviewDidloadより前に)セレクタを呼び出すようでした。とりわけ、通知セレクタの更新が実行され、ビューコントローラが更新されなかったときに、デリゲートメソッドが呼び出されることはありませんでした。 viewcontrollerが未知の状態にあるようです。

私はテストを実行し、同じ更新コードをviewDidLoadに配置し、viewDidLoadが呼び出された後で通知コードのみを呼び出しました。これは機能します。

私の質問は、viewDidLoadの前に呼び出されている通知セレクタメソッドやオブジェクトが正しく初期化されないようにする別の方法がありますか?

私は、これは明らかであると思いなど

のビューの作成をプログラミングするわけではないので、私は、ストーリーボードを使用しています - コードの全体の束を掲載するいかなる容易になっていたではないでしょう。

+2

通知を受信するビューコントローラをいつ登録しますか? – jrturton

+0

View Controllerを初期化するときに常に更新コードを呼び出すのはなぜですか?次に、ビューコントローラが*既に*初期化されていて、自身を更新する必要がある場合のためのNSNotificationを登録します。 –

答えて

0

ありがとうございました。私は、アプリケーションデリゲートで通知を設定しました。私はそれをviewDidLoadの最後に置くべきです。その後、それは後続の更新があるときにのみ呼び出され、オブジェクトが起動して実行される前に最初の通知が更新されるのを止めるフラグは必要ありません。

関連する問題