Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在两个屏幕上运行的iOS应用程序(无镜像)_Ios_Airplay - Fatal编程技术网

在两个屏幕上运行的iOS应用程序(无镜像)

在两个屏幕上运行的iOS应用程序(无镜像),ios,airplay,Ios,Airplay,我已经创建了一个包含幻灯片的iPad应用程序,当用户点击这个幻灯片时,他/她可以输入一些信息 我现在想做的是,当通过AirPlay(或有线电视,如果可能的话,但这似乎只是镜像)连接电视和iPad时,在电视上显示幻灯片内容 这能做到吗?我们是否可以在电视和iPad上播放幻灯片,然后当用户在iPad上点击幻灯片时,凭证输入屏幕将显示,但在电视上仍然会显示基础幻灯片,而不是凭证 在iOS中如何做到这一点?是否可以在电视上显示应用程序的一部分?因此,不要镜像整个应用程序。您可以编写应用程序,使用Airp

我已经创建了一个包含幻灯片的iPad应用程序,当用户点击这个幻灯片时,他/她可以输入一些信息

我现在想做的是,当通过AirPlay(或有线电视,如果可能的话,但这似乎只是镜像)连接电视和iPad时,在电视上显示幻灯片内容

这能做到吗?我们是否可以在电视和iPad上播放幻灯片,然后当用户在iPad上点击幻灯片时,凭证输入屏幕将显示,但在电视上仍然会显示基础幻灯片,而不是凭证


在iOS中如何做到这一点?是否可以在电视上显示应用程序的一部分?因此,不要镜像整个应用程序。

您可以编写应用程序,使用Airplay和Apple TV处理2个UI屏幕,然后为TV UI屏幕和iPad UI屏幕分别设置根视图控制器。然后在电视的view controller上显示图像或幻灯片,并从您的iPad view controller的事件中运行该图像或幻灯片

在CLIFS评论后修订:

因此,首先在您的应用程序中,在didFinishLaunchingWithOptions或DidFinishLaunchingSetup中委派一个接收屏幕连接的通知

[[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]];
}

iOS 5.0中似乎存在一个漏洞,这使得这个问题变得棘手。必须从正在运行的任务栏启用镜像(在通过API检测到第二个屏幕之前一直向左滚动。我在这里的问题中发布了详细信息:

此答案不包括如何完成此操作的详细信息。它只提到在结尾处有一个激动的感叹号是可能的。我删除了我的反对票。这里还有更多的答案。完全有人支持API是全新的(就像我几天前一样)在第二个屏幕上看不到你上面发布的内容。为了公平起见,如果你在没有了解视图层次结构文档的情况下跳到这个屏幕上,那么你在可以走路之前就尝试过跑步。这是一个很好的答案。当我构建我的应用程序时,AirPlay只是一个白日梦,但我使用了它的一个变体来响应秒ond屏幕(在我的情况下,通过电缆连接到电视/显示器)并将正确的视图推到它。当您关闭镜像选项时,screenDidConnect或screenDidDisconnect通知将不会触发。这不是一个好的答案。实际上,我正在iPhone 4s上试用AirPlay n。只有在设置位于任务栏。在发布类似问题之前,我将在这里浏览其他可能的答案。你能将我的答案标记为正确吗?当然,现在有这么多的投票,它被认为是正确的吗?我说杯子是半空的,他们说它是半满的。一个功能显然是一些类似于游戏工具包的API调用,用于扫描和检测附近的AirPlay compa可折叠设备。