iOSがアプリケーションを切り替えるときにviewWillDisappear:
とviewDidDisappear:
が呼び出されるのかどうかは疑問でした(たとえば、ホームボタンがユーザーによって押された)。これにより、画面からビューが消えますが、コールバックが呼び出されますか?アプリケーションを切り替えるときにviewWillDisappear/viewDidDisappearが呼び出されますか?
7
A
答えて
11
いいえ、これらのメソッドは呼び出されません。
アプリがバックグラウンドに入ったときに通知を受けるには、UIApplicationWillResignActiveNotification通知に登録できます。
脇に、最も簡単な方法は、簡単なスーパーアプリケーションを作成してブレークポイントを設定することです。
15
できます。
私が前に使用した解決策は、あなたのアプリケーションデリゲートにapplicationDidEnterBackground:
とapplicationWillEnterForeground:
を使用することです。
これはアプリのデリゲートで行います。アプリフォアグラウンドに戻ってバックグラウンドに行くとするとき
- (void)applicationDidEnterBackground:(UIApplication *)application {
[self.window.rootViewController beginAppearanceTransition:NO animated:NO];
[self.window.rootViewController endAppearanceTransition];
}
- (void)applicationWillEnterForeground:(UIApplication *)application {
[self.window.rootViewController beginAppearanceTransition:YES animated:NO];
[self.window.rootViewController endAppearanceTransition];
}
今すぐあなたのビューコントローラ階層のあなたのviewWillDisappear:
、viewDidDisappear:
、viewWillAppear:
とviewDidAppear:
メソッドが呼び出されます。
これはうまくいきますか?
編集24/11/16(スウィフト3版)
func applicationDidEnterBackground(_ application: UIApplication) {
window?.rootViewController?.beginAppearanceTransition(false, animated: false)
window?.rootViewController?.endAppearanceTransition()
}
func applicationWillEnterForeground(_ application: UIApplication) {
window?.rootViewController?.beginAppearanceTransition(true, animated: false)
window?.rootViewController?.endAppearanceTransition()
}
編集2017年2月1日(すべてのウィンドウ)
func applicationDidEnterBackground(_ application: UIApplication) {
for window in application.windows {
window.rootViewController?.beginAppearanceTransition(false, animated: false)
window.rootViewController?.endAppearanceTransition()
}
}
func applicationWillEnterForeground(_ application: UIApplication) {
for window in application.windows {
window.rootViewController?.beginAppearanceTransition(true, animated: false)
window.rootViewController?.endAppearanceTransition()
}
}
関連する問題
- 1. スレッドがシステムコールを呼び出すときのコンテキスト切り替え
- 2. portraitモードで表示に切り替えるときにwillHideViewControllerが呼び出されない
- 3. tabBarControllerのタブを切り替えると、どのメソッドが呼び出されますか?私はtabBarController</p>私はそれが私が知りたい、viewDidLoadメソッドを呼び出します初めてで知っ <p>でタブを切り替えるときにメソッドが呼び出されます
- 4. 呼び出し規約がコンテキスト切り替えに影響しますか?
- 5. ビューを切り替えるとacceptsFirstResponderが2度呼び出されるのはなぜですか?
- 6. アプリケーションがバックグラウンドから呼び出されたときにメソッドを呼び出す
- 7. kernel/sched.c/context_switch()は、プロセスが切り替えられるたびに呼び出されることが保証されていますか?
- 8. ビューを切り替えた後でもメソッドがビューで呼び出されていますか?
- 9. ディスパッチャを呼び出すときにWPFアプリケーションがデッドロックされる
- 10. アプリケーションとフォーカスの切り替えに問題があります
- 11. ユーザーが別のブラウザタブに切り替えると検出できますか?
- 12. Application.Run()が呼び出される前に終了(終了)とアプリケーションが呼び出されていますか?
- 13. VB6アプリケーションはトレースなしで消えます:PCodeとネイティブコードを切り替えると違いが出ますか?
- 14. iOSアプリケーションでデバイスをサイレントモードに切り替えることはできますか?
- 15. ASP.NET:Webアプリケーションをデバッグモードに切り替えることができません
- 16. アプリケーションを設定に切り替えた後、アプリケーションがクラッシュする
- 17. アプリケーションのドメイン切り替え
- 18. startActivityForResult()を呼び出すときにonDestroy()が呼び出されます
- 19. アプリケーションが方向スイッチを切り替えるたびにAsyncTaskを実行する
- 20. onReceiveが呼び出されないときに呼び出される
- 21. タブを切り替えるときにVideoViewにビデオが表示されない
- 22. ビューを切り替えるときにXcodeアクションが作成される
- 23. MVVMアプリケーションでViewModelsを切り替えるときのBindingExpressionパスエラー
- 24. サーバーを切り替えるときにMysqlがクロールする
- 25. Android - 2つのアクティビティの切り替え中に、アクティビティライフサイクルメソッドの呼び出し順
- 26. 最初に呼び出すときにハンドラを切り離す
- 27. Dozeモードに切り替えることができません
- 28. トランクに切り替えることができません
- 29. アプリケーションの画像を切り替える
- 30. トレース:requestLayout()が不適切に呼び出されましたか?
との結果がどのようなものあなたのテスト? –
私はこれについて疑問に思っている人がいると確信しています。 Googleでは、テストプロジェクトをコーディングするよりもまだ高速です。 – gabor
アプリデリゲートは、アプリの切り替え時にのみ呼び出されます。 –