2016-05-23 7 views
0

タイトルに記載されているように、ViewDidAppear()とViewWillAppear()は、アプリケーションの起動時に呼び出され、バックグラウンドから開いたときViewDidLoad()メソッドです。ViewDidAppear()とViewWillAppear()は起動時にのみ呼び出されます

誰かが私が間違っていることを知っていますか?私は自分のコードが問題だとは思わないが、私が必要ならば投稿することができる。

ありがとうございます。

+0

なぜこれらのメソッドを再度呼び出すと思いますか? – rmaddy

+0

私はそれがそれらの方法の目的だと思った。アプリがバックグラウンドで表示されるときに呼び出される他のメソッドは何ですか? AppDelegateではなく、AppDelegateではなく私の視点でものをやりたいからです。あなたの素早い答えをありがとう。 –

+3

'viewWillAppear'と' viewDidAppear'は、ビューコントローラが提示されているときに呼び出されます。アプリがバックグラウンドから戻ると、ビューコントローラは既にアプリのコンテキストで表示されているので、これらのメソッドは呼び出されません。アプリがバックグラウンドから復帰したときにビューをリフレッシュしたい場合は、 'UIApplicationWillEnterForegroundNotification'''NSNotification'を観察する必要があります。 – Paulw11

答えて

1

ViewWillAppear:UIViewの作成にはかなりの費用がかかります。これはViewWillAppearメソッドではできるだけ避けてください。これはiPhoneがUIViewをユーザーに表示する準備ができていることを意味します。あなたがここでやることは、非常に目に見える形で(アニメーションの遅延など)、パフォーマンスに影響を与えます。

ViewDidAppear:最後に、ViewDidAppearを使用して、実行に時間がかかるようなものに新しいスレッドを開始します。たとえば、Webサービス呼び出しを実行して、上のフォームの余分なデータを取得します。ビューが既に存在し、ユーザーに表示されている場合は、データを取得している間、ユーザーに素晴らしい「待機中」というメッセージを表示できます。

あなたはあなたのアプリケーションがバックグラウンドから来たときに何かをしてappDelegateで背景 を入力したときに取得するには、この 好きな背景に行きたい場合。

(void)applicationDidEnterBackground:(UIApplication *)application 

アプリがフォアグラウンドになるタイミングを取得します。

関連する問題