UIViewController のビューが表示されているかどうかを確認する方法 質問する

UIViewController のビューが表示されているかどうかを確認する方法 質問する

UIViewController多くのビューを持つタブ バー アプリケーションがあります。特定のビューが現在 内から表示されているかどうかを知る方法はありますかUIViewController? (プロパティを探しています)

ベストアンサー1

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

を呼び出すビューメソッドはビューをロードしますが (ロードされていない場合)、これは不要であり、望ましくない可能性があります。最初に、すでにロードされているかどうかを確認することをお勧めします。この問題を回避するために、isViewLoaded の呼び出しを追加しました。

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

iOS9以降は簡単になりました:

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

または、ビューコントローラを管理するUINavigationControllerがある場合は、その表示可能なViewController代わりにプロパティを使用します。

おすすめ記事