モーダルビューを表示するアプリがありますコントローラー、異なるUIWindowsに標準のViewControllerとUIAlertControllerがあります。メインは通常のUIWindowLevel優先度で、アラートウィンドウはアラートUIWindowLevel優先度です。これは、メインUIWindowでモーダルに提示するViewControllerの上に常にアラートを表示したいためです( AppDelegatesリファレンス)。ステータスバーの優先度が設定された別のUIWindowもあります。 すべての上にViewController。 したがって、UIWindowにアラートUIWIndowLevel優先度を表示し、別のウィンドウにステータスバーUIWIndowLevelを表示すると、アラートウィンドウのアラートがステータスバーウィンドウの上に表示されます。その理由はありますか?
回答:
回答№1は0それで、私は開かれた多くのSOのいくつかを見て、この答えを見ました: https://stackoverflow.com/a/24262942/6784707
(UIWindowLevelNormal、UIWindowLevelAlert、UIWindowLevelStatusBar)の値を出力しました(0.0、2000.0、1000.0)。しかし、Appleのドキュメントには次のように記載されています。
〜する UIWindowLevelNormal:UIWindowLevel
デフォルトレベル。このレベルは、アプリのメインウィンドウを含む、コンテンツの大部分に使用します。
〜する UIWindowLevelAlert:UIWindowLevel
アラートビューのレベル。このレベルのウィンドウは、UIWindowLevelNormalレベルのウィンドウの上に表示されます。
〜する UIWindowLevelStatusBar:UIWindowLevel
ステータスウィンドウのレベル。ウィンドウズ このレベルでは、UIWindowLevelAlertレベルのウィンドウの上に表示されます.
AppleのBugReporterでバグを埋めました。
私の解決策は、2000を超える値のCGFloatを作成し、それをwindowLevelに追加することでした。