1

在 iOS 的视图编程指南中,它声明“每个 iOS 应用程序至少需要一个窗口——一个 UIWindow 类的实例——而且有些可能包含多个窗口。”

有哪些示例应用程序需要多个窗口?

谢谢

4

2 回答 2

1

需要将视频输出到第二个屏幕的应用程序可能会使用多个窗口。 在这里,您有关于该特定主题的问题。

您也可以使用多个窗口来实现其他目标,但 Apple 不建议这样做。一般来说,如果您发现需要 2 个或更多窗口,我建议您的方法有问题。

我在一个测试项目中使用了 2 个窗口来集成 cocos2d 和 uikit,代码非常干净,想法是在窗口之间切换,根据需要使用可见性和关键窗口。它有效,但有时在将应用程序发送到后台时,由于某种神奇的原因,活动的关键窗口会变得不可见。

于 2012-10-25T22:03:18.527 回答
0

Afaik 唯一需要多个窗口的情况是,如果您将另一个屏幕(如电视)连接到您的设备。在这种情况下,您可以为第二个屏幕提供完全独立的 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];
    }
}
于 2012-10-25T22:05:54.480 回答