2011-11-01 53 views
6

我创建了一个包含幻灯片的iPad应用程序,当用户点击此幻灯片时,他/她可以输入一些信息。在两个屏幕上运行的iOS应用程序(不镜像)

我想什么,现在做的是在电视上显示的幻灯片内容连接通过AirPlay的电视和iPad时(或电缆如果可能的话,但似乎只反映事物)

可这是做了什么?我们是否可以在电视和iPad上运行幻灯片演示,然后当用户在iPad上点击幻灯片时,凭据输入屏幕将显示,但在电视上仍然会显示底层幻灯片,而不是凭据?

这怎么可以在iOS中完成?是否可以在电视上显示一部分应用程序?所以不要镜像整个应用程序。

+0

我实际上正在试验AirPlay n iPhone 4s。我只能在任务栏中的播放控件上设置镜像选项后才能使用Apple TV 2。我会在发布类似问题之前浏览其他可能的答案。 – Cliff

+0

can你标记我的答案是正确的吗?肯定现在有这么多upvotes它被认为是正确的? – Dev2rights

回答

18

您可以使用Airplay和Apple TV编写应用程序来处理2个UIScreen,然后为TV UIScreen和iPad UIScreen设置一个单独的根视图控制器。然后在电视的视图控制器上显示图像或幻灯片,并从您的iPad事件中运行视图控制器!在didFinishLaunchingWithOptions或didFinishLaunching设置的通知接收屏幕并连接

所以,首先在你的应用程序代理:

修正后CLIFS评论。

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(screenDidConnect:) name:UIScreenDidConnectNotification object:nil]; 

然后,您需要保持对单独窗口的引用,并将控制器按压到其他任何窗口。

- (void) myScreenInit:(UIScreen *)connectedScreen:(UIViewController*)mynewViewController 
{  
    //Intitialise TV Screen 
    if(!windowTV) 
    { 
     CGRect frame = connectedScreen.bounds; 
     windowTV = [[UIWindow alloc] initWithFrame:frame]; 
     windowTV.backgroundColor = [UIColor clearColor]; 
     [windowTV setScreen:connectedScreen]; 
     windowTV.hidden = NO; 
    } 

    UIViewController* release = windowTV.rootViewController; 
    windowTV.rootViewController = mynewViewController; 
    [release removeFromParentViewController]; 
    [release release]; 
} 

- (void)setTvController:(UIViewController*)mynewViewController 
{  
    UIViewController* release = windowTV.rootViewController; 
    windowTV.rootViewController = mynewViewController; 
    [release removeFromParentViewController]; 
    [release release]; 
} 

- (void)screenDidConnect:(NSNotification *)notification { 
    [self myScreenInit:[notification object]]; 
} 
+0

这个答案不包括关于这是如何完成的具体细节,它只是提到它可能带有兴奋的感叹号结束 – Cliff

+2

好吧,你现在是悬崖,请投票吧。 – Dev2rights

+0

我删除了我的dow n投票。这里的答案还有更多。有人完全崭露头角(就像我几天前),在上面发布的内容后,在辅助屏幕上看不到任何东西。 – Cliff

0

在iOS 5.0中似乎有一个错误,这使得这个棘手。你必须从正在运行的任务栏中启用镜像(在通过API检测到第二个屏幕之前一直滚动左边的图像)。我在此处发布了详细的问题:How to use iOS 5+ AirPlay for a second screen

+0

苹果显然认为这不是一个错误,而是一个功能。 – coco

+0

我说玻璃是半空的,他们说它是半满的。一个功能显然是一些类似GameKit的API调用,可以通过AirPlay兼容设备进行扫描和检测。 – Cliff

相关问题