3
現在、どのコントローラ/ウィンドウがapplicationDidBecomeActiveにあるのかを確認するにはどうすればよいですか?たとえば、ログイン画面(LoginViewController)で、applicationDidBecomeActiveが起動すると、それはappDelegateのログイン画面であることがわかりますか?applicationDidBecomeActive現在の画面
現在、どのコントローラ/ウィンドウがapplicationDidBecomeActiveにあるのかを確認するにはどうすればよいですか?たとえば、ログイン画面(LoginViewController)で、applicationDidBecomeActiveが起動すると、それはappDelegateのログイン画面であることがわかりますか?applicationDidBecomeActive現在の画面
applicationDidBecomeActive
に渡されたUIApplication
オブジェクトには、windows
プロパティがあります。可視ウィンドウのNSArray
で、前から前に並べ替えられています。
あなたが前面のウィンドウを持っていたら、最初のサブビューを取得し、そのタイプをテストすることができます:私はこれにアクセスし、ちょうどサブビューにあるものを見ることができ感謝を
if ([[foregroundWindow.subviews objectAtIndex:0] class] == [LoginViewController.view class]) {
...
}
を。私はwindow.subviewsを反復しようとしていますが、どのように各サブビューが何であるかを判断しますか?対称型のメソッドがあるのかどうかわかりませんが、型を比較していますか? if([window.subviews objectAtIndex:0] == "LoginViewController") 私はクラス参照を見ましたが、名前の型にアクセスできるかどうかはわかりませんが、viewDelegateが表示されますが、それを取得する。 – fes
私は答えを編集して詳細情報を追加しました – highlycaffeinated
objectAtIndexのクラス名は常にUIViewです。私のdidFinishLaunchingWithOptionsには、[window addSubview:loginViewController.view]があります。したがって、objectViewIndexのUIViewはtrueです。これは、loginViewControllerがUIViewを拡張するUIViewControllerを拡張するためです。このUIViewの親の親が必要な場合があるように感じます。 – fes