2011-11-01 3 views
6

슬라이드 쇼가 포함 된 iPad 앱을 만들었으며이 슬라이드 쇼를 사용자가 탭하면 정보를 입력 할 수 있습니다. AirPlay를 통해 TV와 아이 패드를 연결할 때 내가 지금하고 싶은 무엇두 화면에서 실행되는 iOS 앱 (미러링 없음)

는 TV에서 슬라이드 쇼의 내용을 표시하는 것입니다 (또는 케이블 가능한 경우, 그러나 그것은 단지 물건을 반영하는 것)

것은이 될 수 끝난? 슬라이드 쇼를 TV와 iPad에서 실행할 수 있고 사용자가 iPad에서 슬라이드 쇼를 탭하면 자격 증명 입력 화면이 표시되지만 TV에서는 기본 슬라이드 쇼가 표시되고 자격 증명은 표시되지 않습니까?

어떻게하면 iOS에서이 작업을 수행 할 수 있습니까? TV에 응용 프로그램의 일부를 표시 할 수 있습니까? 전체 응용 프로그램을 미러링하지 마십시오.

+0

실제로 AirPlay를 실험하고 있습니다. iPhone 4s. 작업 표시 줄에있는 airplay 컨트롤에 미러 옵션을 설정 한 후에 만 ​​Apple TV 2에서 작동하도록했습니다. 비슷한 질문을 게시하기 전에 다른 가능한 답변을 찾아 보겠습니다. – Cliff

+0

수 있습니다. 당신은 정확하게 내 대답을 표시 할 것입니까? 분명히 지금까지는이 많은 상향 회선이 정확하다고 여겨졌습니다. – Dev2rights

답변

18

Airplay와 Apple TV를 사용하여 2 개의 UIScreens를 처리하도록 프로그램을 작성한 다음 TV UIScreen과 iPad UIScreen 모두에 대해 별도의 루트보기 컨트롤러를 설정할 수 있습니다. 그런 다음 TV의보기 컨트롤러에 이미지 또는 슬라이드 쇼를 표시하고 iPads보기 컨트롤러의 이벤트에서 실행하십시오!

는 CLIFS의 COMMENT 후에 개정 된 :

을 그래서 먼저 앱 위임에 didFinishLaunchingWithOptions 또는 연결 않은 화면을 받도록 설정에게 통지를 didFinishLaunching에.

[[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 표. 여기에 대한 답변이 더 있습니다. 며칠 전 API에 완전히 새로운 사람이라면 위에 게시 한 내용에 따라 보조 화면에서 아무 것도 볼 수 없습니다. – Cliff

0

iOS 5.0에 버그가있는 것으로 보입니다. 실행중인 작업 표시 줄에서 미러링을 활성화해야합니다 (API를 통해 두 번째 화면이 감지되기 ​​전에 왼쪽으로 스크롤 함). 내 질문에 세부 사항을 게시했습니다 : How to use iOS 5+ AirPlay for a second screen

+0

애플은 분명히 이것이 버그는 아니지만 기능이라고 생각합니다. – coco

+0

나는 유리가 반쯤 비어 있다고 말하며 절반 밖에 채우지 않는다고 말합니다.이 기능은 분명히 AirPlay 호환 장치로 스캔하고 탐지 할 수있는 GameKit과 유사한 API 호출 일 것입니다. – Cliff