2011-11-01 42 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

相關問題