2011-11-01 24 views
6

Ho creato un'applicazione per iPad che contiene una presentazione e quando questa presentazione viene toccata dall'utente, lui/lei può inserire alcune informazioni.App iOS che funziona su due schermi (senza mirroring)

Quello che mi piacerebbe fare ora è quello di visualizzare il contenuto della presentazione su un televisore quando si collega il televisore e iPad attraverso AirPlay (o il cavo, se possibile, ma che sembra solo per rispecchiare le cose)

Questo può essere fatto? Possiamo far funzionare la presentazione sul TV e anche su iPad e poi quando l'utente tocca la presentazione sull'iPad apparirà la schermata di inserimento delle credenziali, ma sulla TV resterà visualizzata la presentazione sottostante e non le credenziali?

Come può essere fatto in iOS? È possibile visualizzare una parte dell'applicazione sul televisore? Quindi non rispecchiare l'intera applicazione.

+0

In realtà sto sperimentando con AirPlay n iPhone 4s. Sono riuscito a farlo funzionare con Apple TV 2 solo dopo aver impostato l'opzione mirror sul controllo airplay situato nella barra delle applicazioni. Vado a sfogliare altre possibili risposte qui prima di postare una domanda simile – Cliff

+0

can contrassegni la mia risposta come corretta? Sicuramente oramai con questi molti upvotes è ritenuto corretto? – Dev2rights

risposta

18

È possibile scrivere l'app per gestire 2 UIScreens utilizzando Airplay e un Apple TV quindi impostare un controller di visualizzazione radice separato sia per il TV UIScreen che per l'iPad UIScreen. Quindi visualizza l'immagine o la presentazione sul controller di visualizzazione della TV ed esegui quello dagli eventi del tuo controller di visualizzazione iPads!

modificate dopo Clifs COMMENTO:

Quindi, in primo luogo nella vostra applicazione delegato in didFinishLaunchingWithOptions o didFinishLaunching impostare una notifica per ricevere lo schermo ha la connessione.

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

allora avete bisogno di mantenere un riferimento alla tua finestra separata e spingere i controllori ad esso, come si farebbe con qualsiasi altra finestra.

- (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

Questa risposta non include le specifiche su come questo è fatto. Si accenna solo che è possibile con un punto esclamativo eccitato alla fine – Cliff

+2

Ok, ora sei sulla scogliera, per favore, per favore, vota. – Dev2rights

+0

Ho tolto il mio dow n voto. C'è ancora di più per la risposta qui. Qualcuno completamente nuovo di zecca per l'API (come ero pochi giorni fa) non avrebbe visto nulla su uno schermo secondario seguendo quello che hai postato sopra. – Cliff

0

Sembra esserci un bug in iOS 5.0 che rende questo difficile. Devi abilitare il mirroring dalla barra delle applicazioni in esecuzione (scorrendo completamente a sinistra prima che venga rilevata una seconda schermata tramite l'API. Ho postato i dettagli nella mia domanda qui: How to use iOS 5+ AirPlay for a second screen

+0

Apple crede chiaramente che questo non sia un bug, ma una funzionalità. – coco

+0

Dico che il bicchiere è mezzo vuoto, dicono che è pieno a metà .. Una funzione sarebbe chiaramente alcune chiamate API di tipo GameKit per scansionare e rilevare vicino ai dispositivi compatibili con AirPlay. – Cliff

Problemi correlati