2

アプリケーションが以前にバックグラウンドにあった場合、applicationDidBecomeActiveが呼び出されたときに、オプションでユーザー インターフェイスを更新するにはどうすればよいですか?

現在のView Controllerは常にストーリーボードの最初のView Controllerであると予想しています.mainでストーリーボードへのポインタを取得できませんAppDelegate.m

どのView Controllerが現在表示されているかを確認して判断するにはどうすればよいですか?

4

1 に答える 1

4

ストーリーボードへのポインターだけが必要な場合は、次のようにすることができます。

UIStoryboard *sb = [[[self window] rootViewController] storyboard];

rootViewController実際には、ストーリーボードの最初のビュー コントローラーはどこにありますか。このコントローラーが現在のコントローラーであると予想される場合 (あなたが言うように) は問題ありませんが、実際に UI を更新したい場合は、デリゲート (内部applicationDidBecomeActive)からカスタム通知を投稿できると思います。関心のある各コントローラーを登録して、UI を更新できるようにします (または、デリゲートがキャッチするものと同じものをキャッチするselfためにオブザーバーとして追加します...)。UIApplicationDidBecomeActiveNotification

PS。あなたrootViewControllerが の場合、UINavigationController次のように現在表示されているコントローラーを取得できます。

id currentController = [[[self window] rootViewController] visibleViewController];
于 2012-06-26T10:11:35.070 に答える