2017-10-27 19 views
3

インタビューでこの質問を何度も聞かれましたが、どこで適切な答えが得られなかったのかを調査しました。最後に、ここでこの質問を投稿しました。iOSアプリケーションが複数のウィンドウを持つことは可能でしょうか?

+2

これをチェックしてください! https://developer.apple.com/documentation/uikit/uiwindow – Mannopson

+2

はい、複数のウィンドウを持つことができます。同時に1つしか_key_することはできません。複数のウィンドウを使用するあなたの計画は何ですか? – holex

答えて

3

これを行うことができます。

はい、複数のウィンドウを持つことができます。キーウィンドウは、ユーザー入力を受け取るウィンドウです。ロブの答えを皮切り

私は少し周りを演奏し、このトピックに関する情報を取得しようとしている他の人のためのいくつかのメモを書き留めたいと思います:

  1. それは別のUIWindowを追加することで、すべての問題ではありません。 とmakeKeyAndVisibleの1つを作成するだけです。完了しました。
  2. もう1つのウィンドウを表示して削除してください。もう不要なものを解放してください。
  3. "キー"であるウィンドウは、すべてのキーボード入力を受け取ります。
  4. UIWindowはすべて、モーダル、ポップオーバーなどをカバーしています。Brilliant!
  5. UIWindowは常に暗黙のうちに似ています。回転しません。
  6. 新しいウィンドウのルートコントローラにコントローラを追加し、そのハンドルを回転させる必要があります。
  7. (メインウィンドウと同じように)ウィンドウのレベルによって、 は「高」に表示されます。すべてをカバーするには、UIWindowLevelStatusBarに設定します。
  8. hiddenプロパティをNOに設定します。 A 2番目 UIWindowを使用して、すべての画面の上に浮かぶ画面上のビューを表示できます。これをUIPopoverControllerに埋め込むだけのダミーコントローラを作成しないでください。
  9. iPhoneの場合、ポップオーバーコントローラーがなく、そのようなものを模倣したい場合に特に便利です。
  10. はい、それは私の問題を解決しました。 アプリが終了した場合は、 の上にカバーウィンドウを追加して、iOSが アプリの現在のコンテンツのスクリーンショットを作成できないようにします。
+1

もう少しポイントを追加していただきありがとうございます。 –

1

もちろん、複数のウィンドウを持つことができます。一度に1つだけ表示されるのは、keyWindowです。複数のウィンドウを配列やその他のものに格納しておきたい場合は、keyWindowにすることができます。

そして、ええ、@マンノプソンが提案したドキュメントを読むと、非常に便利です。

+1

ありがとう@Mannopson。本当に役に立ちました。 –

1

通常、1つのアプリケーションでは1つのUIWindowしか必要ありませんが、1つのアプリケーションで複数のUIWindowを使用する必要があるシナリオがあります。

たとえば、システムのAlertViewの上部にビューを表示するか、デフォルトのキーボードで表示できます。

UIWindowsは、表示順序が.windowLevelプロパティによって制御される特殊なUIViewです。

任意のビューのサブビューとして新しいUIWindowを追加する必要はありません。単に新しいUIWindowを作成して、setHidden:NOウィンドウまたはmakeKeyAndVisibleウィンドウを呼び出すことができます。

定義された3つのデフォルトのウィンドウの列挙のレベルがあります。

  • UIWindowLevelNormal
  • UIWindowLevelStatusBar
  • UIWindowLevelAlert
関連する問題