1. ホーム
  2. ios

[解決済み] UIViewController のビューが表示されているかどうかを確認する方法

2022-03-16 09:49:46

質問

私はタブバーアプリケーションを持っており、多くのビューがあります。特定の UIViewController の中から現在表示されている UIViewController ? (プロパティを探す)

解決方法は?

ビューの ウィンドウプロパティ は、現在表示されているビューがある場合、nil ではないので、ビューコントローラでメインビューを確認します。

を呼び出すと ビュー メソッドを使用すると、ビューをロードすることになりますが (ロードされていない場合)、これは不要であり、望ましくないことかもしれません。 すでにロードされているかどうかを最初にチェックする方がよいでしょう。 この問題を回避するために、isViewLoadedの呼び出しを追加しました。

if (viewController.isViewLoaded && viewController.view.window) {
    // viewController is visible
}

iOS9以降、より簡単になりました。

if viewController.viewIfLoaded?.window != nil {
    // viewController is visible
}


あるいは、ビューコントローラーを管理しているUINavigationControllerがある場合、その 可視ビューコントローラ プロパティの代わりに