iOS のビュー プログラミング ガイドでは、「すべての iOS アプリケーションには少なくとも 1 つのウィンドウ (UIWindow クラスのインスタンス) が必要であり、複数のウィンドウを含むものもあります」と記載されています。
複数のウィンドウが必要なアプリの例は?
ありがとう
iOS のビュー プログラミング ガイドでは、「すべての iOS アプリケーションには少なくとも 1 つのウィンドウ (UIWindow クラスのインスタンス) が必要であり、複数のウィンドウを含むものもあります」と記載されています。
複数のウィンドウが必要なアプリの例は?
ありがとう
ビデオを 2 番目の画面に出力する必要があるアプリは、複数のウィンドウを使用する場合があります。 ここで、その特定のトピックについて質問があります。
複数のウィンドウを使用して他の目的を達成することもできますが、Apple では推奨していません。一般に、2 つ以上のウィンドウが必要な場合は、アプローチに何か問題があることをお勧めします。
テスト プロジェクトで cocos2d と uikit を統合するために 2 つのウィンドウをいじってみました。コードはきれいで、必要に応じて可視性とキー ウィンドウを使用してウィンドウを切り替えるというアイデアでした。それは機能しましたが、アプリをバックグラウンドに送信すると、何らかの魔法の理由でアクティブなキー ウィンドウが非表示になることがありました。
複数のウィンドウが必要になる唯一のケースは、テレビなどの別の画面をデバイスに接続する場合です。その場合、2 番目の画面に完全に独立した UI を提供できます。iPad の Keynotes アプリは、別の画面をデバイスに接続したときにそれを行います。
UIScreenDidConnectNotification に登録して、次のように処理できます。
- (void)screenDidChange:(NSNotification *)notification
{
if ([UIScreen screens] count] > 1)
{
UIScreen *extScreen = [[UIScreen screens] objectAtIndex:1];
UIWindow *extWindow = [[UIWindow alloc] initWithFrame:[extScreen bounds]];
//add some subviews to the window
extWindow.screen = extScreen;
[extWindow makeKeyAndVisible];
}
}