对于iOS,什么时候App会使用多个Window?

时间:2012-10-25 21:55:14

标签: ios cocoa-touch uiview

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

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

由于

2 个答案:

答案 0 :(得分:1)

需要将视频输出到第二个屏幕的应用可能会使用多个窗口。 Here您对该特定主题有疑问。

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

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

答案 1 :(得分:0)

如果您将另一个屏幕(如电视)连接到您的设备,那么唯一需要多个窗口的案例就是Afaik。在这种情况下,您可以为第二个屏幕提供完全独立的UI。 F.E.当您将另一个屏幕连接到设备时,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];
    }
}