在iPad上显示一个,在Apple TV上显示另一个?

我有一个应用程序的想法,但我不知道是否有可能。

我想知道是否能够在iPad(或iPhone)屏幕上显示一个东西,同时在Apple TV上显示完全不同的东西。 例如,在苹果电视上显示问题的测验应用程序,以及iPad上列出的多个选项供用户select。

我不知道这是可能的,或者只能将iPad屏幕镜像到Apple TV上。

如果有一些“概念validation”示例代码,我很想看看。 非常感谢。 克里斯

事实certificate,支持两个屏幕非常简单:iOS设备的主屏幕和辅助屏幕(外部显示屏或Apple TV上的镜像)。

根据博客文章为iOS和Apple TV创build双屏AirPlay体验的信息 ,您不需要做太多工作。

基本上你需要检查UIScreenscreens属性。 还有你应该听的通知( UIScreenDidConnectNotificationUIScreenDidDisconnectNotification ),以便知道在你的应用程序运行时屏幕数量是否发生变化。

一旦你有第二个屏幕,你需要为它创build一个新的窗口。 可以使用如下代码:

 if ([UIScreen screens].count > 1) { if (!_secondWin) { UIScreen *screen = [UIScreen screens][1]; _secondWin = [[UIWindow alloc] initWithFrame:screen.bounds]; _secondWin.screen = screen; } } 

其中_secondWin是一个UIWindow伊娃。

一旦窗口被设置,创build一个视图控制器,使其成为窗口的根视图控制器,并显示窗口:

 SomeViewController *vc = [[SomeViewController alloc] init...]; _secondWin.rootViewController = vc; _secondWin.hidden = NO; 

除了正确处理通知之外,这几乎是不可能的。 请记住,您无法在第二台显示器上获得任何触摸事件,因此请确保您显示的内容基本上是仅显示的。

根据您的应用程序,您可能会在应用程序的整个生命周期中使用第二个屏幕/窗口(只要第二个屏幕以任何方式提供)。 或者你可能只在某些情况下创build和使用第二个窗口/屏幕。 当您不设置第二个窗口/屏幕时,您的应用程序将简单地镜像到第二个显示屏或Apple TV。

最后一部分是打开苹果电视的镜像。 这是在iOS设备上完成的,而不是在应用程序中完成的。

我链接的博客文章有一些值得审查的细节。