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. ajaxから切り替えたときにjqueryが呼び出されない
- 2. スレッドがシステムコールを呼び出すときのコンテキスト切り替え
- 3. 経路を切り替えるときにリアクションルータがコンポーネントコンストラクタを呼び出す
- 4. iOS 11のキーボードを切り替えるときにUIKeyboardWillShowの通知が呼び出されない
- 5. portraitモードで表示に切り替えるときにwillHideViewControllerが呼び出されない
- 6. Huaweiの電話機に切り替えるときにonCreateが呼び出されない
- 7. tabBarControllerのタブを切り替えると、どのメソッドが呼び出されますか?私はtabBarController</p>私はそれが私が知りたい、viewDidLoadメソッドを呼び出します初めてで知っ <p>でタブを切り替えるときにメソッドが呼び出されます
- 8. 呼び出し規約がコンテキスト切り替えに影響しますか?
- 9. Android Switch - onCheckedChangeListenerを呼び出す前にUIの切り替えを切り替える方法
- 10. ビューを切り替えるとacceptsFirstResponderが2度呼び出されるのはなぜですか?
- 11. アプリケーションがバックグラウンドから呼び出されたときにメソッドを呼び出す
- 12. kernel/sched.c/context_switch()は、プロセスが切り替えられるたびに呼び出されることが保証されていますか?
- 13. ビューを切り替えた後でもメソッドがビューで呼び出されていますか?
- 14. カスタムアダプタが呼び出されたときにアプリケーションがクラッシュする
- 15. アプリケーションとフォーカスの切り替えに問題があります
- 16. ディスパッチャを呼び出すときにWPFアプリケーションがデッドロックされる
- 17. いくつかのView Controllerを切り替えるときにdidMoveToView()の曲を呼び出す方法
- 18. Application.Run()が呼び出される前に終了(終了)とアプリケーションが呼び出されていますか?
- 19. ユーザーが別のブラウザタブに切り替えると検出できますか?
- 20. VB6アプリケーションはトレースなしで消えます:PCodeとネイティブコードを切り替えると違いが出ますか?
- 21. iOSアプリケーションでデバイスをサイレントモードに切り替えることはできますか?
- 22. Xamarin iOS:バックグラウンドフェッチで呼び出された有効期限切れのハンドラが呼び出されたときに最後に呼び出されます
- 23. アプリケーションを設定に切り替えた後、アプリケーションがクラッシュする
- 24. アプリケーションのドメイン切り替え
- 25. ダークモードの切り替えアプリケーション
- 26. ASP.NET:Webアプリケーションをデバッグモードに切り替えることができません
- 27. 親がクリックされたときに子を切り替えます
- 28. アプリケーションが方向スイッチを切り替えるたびにAsyncTaskを実行する
- 29. startActivityForResult()を呼び出すときにonDestroy()が呼び出されます
- 30. 第三者のウィンドウに切り替えてアプリケーションステージに切り替えると親ステージが表示されない
との結果がどのようなものあなたのテスト? –
私はこれについて疑問に思っている人がいると確信しています。 Googleでは、テストプロジェクトをコーディングするよりもまだ高速です。 – gabor
アプリデリゲートは、アプリの切り替え時にのみ呼び出されます。 –