Domanda

Sto cercando di supportare il display esterno sulla mia app IOS senza utilizzare file .xib.

In questo momento il mio codice contiene questo:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ 
    if ([[UIScreen screens] count] > 1){
        externalScreen = [[UIScreen screens] objectAtIndex:1];
        UIScreenMode *current = [[[[UIScreen screens]objectAtIndex:1]availableModes]objectAtIndex:0];
        externalScreen.currentMode = current;
        externalWindow = [[UIWindow alloc] initWithFrame:[externalScreen bounds]];
        externalWindow.screen = externalScreen;
        externalWindow.clipsToBounds = YES;

        extController = [[ExternalController alloc] init];
        [externalWindow addSubview:extController.view];
        [externalWindow makeKeyAndVisible];
    }
    self.window = [[UIWindow alloc] initWithFrame:[[[UIScreen screens] objectAtIndex:0] bounds]];

    mainController = [[ViewController alloc] init];
    [self.window addSubview:mainController.view];
    self.window.backgroundColor = [UIColor whiteColor];
    [self.window makeKeyAndVisible];
}
.

Quando lo eseguo, la schermata TV OUT si chiuderà immediatamente. Se commento questa linea:

//self.window = [[UIWindow alloc] initWithFrame:[[[UIScreen screens] objectAtIndex:0] bounds]];
.

La schermata TV OUT funzionerà correttamente, ma ovviamente non vedo nulla sullo schermo del mio simulatore.

Qualcuno ha idea di cosa dovrei fare?Grazie in anticipo!

È stato utile?

Soluzione

Posso suggerire di provare il codice sorgente del campione Tv tvout su GitHub - https://github.com/johngoodstadt/tvout.

Utilizza il codice simile al tuo ma confezionato in una classe che è possibile copiare e chiamare dal proprio codice.

dovrebbe risolvere il problema del display.Dal modo in cui non farei il tuo codice come nelle "DidfinishLaunchingWithOptions" ma in seguito nel controllo del primo controllore.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top