どのiPhoneアプリケーションでも、いつでも1つのUIWindowインスタンスのみが可能であることを誰かが確認できますか?
更新:このリンク で次の情報を見つけました。これによると、多くのウィンドウが存在する可能性があります。
さらに、UIApplication オブジェクトは、アプリケーションで現在開いているすべてのウィンドウ (UIWindow オブジェクト) のリストを保持しているため、それらを介してアプリケーションの UIView オブジェクトを取得できます。
過去に複数のUIWindowsをうまく使用していました。それにはいくつかの理由があります。たとえば、UIWindow の rootViewController を何度 nil に設定しても解放できません。しかし、ウィンドウを収集するとうまくいきます。複数のウィンドウを使用することで、いくつかの視覚効果と明確なコード分離を実現できます。実験をしたがらない人がどれだけ多いかに、私はうれしい驚きを感じています。Appleは「すべきではない」としか言いません。彼らが私たちにそれを使わせたくないのなら、私たちもそれを知ることはできませんし、知ることさえできません.
はい、iOS apsの場合、通常はUIWindowが1つだけです。
ウィンドウには 3 つのタイプがあり、私見ではそれらすべてを使用するのが理にかなっています。
通常のウィンドウ - すべてのアプリで使用する keyWindow
ステータスバー ウィンドウ - 「ユーザーがステータスバーをクリックしたときに何が起こるか」などのカスタマイズに使用されます (デフォルトでは、スクロール ビューをページの一番上までスクロールしますが、他の動作を追加できます。たとえば、アプリでスクロール ビューを使用しないが、 「同等の」機能を提供する意味)
アラート ウィンドウ - カスタム ポップアップを作成する場合など。多くの開発者はカスタム ポップアップを作成しますが、それらを警告ウィンドウとして宣言しません。これにより、グラフィックの不具合が発生することがあります。たとえば、非同期のことが発生してポップアップの上に表示されたり、アニメーションがポップアップの上に表示されたりする場合です。