Pergunta

eu estou tentando suporte para monitor externo no meu iOS app, sem uso .arquivos xib.

agora o meu código contém esse:

- (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 eu executo isso, a TV de tela será fechado imediatamente.Se eu comentar esta linha:

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

a TV de tela funcionará corretamente, mas é claro que eu não veja nada no meu simulador de tela.

Alguém tem alguma idéia do que eu deveria fazer?Obrigado antecipadamente!

Foi útil?

Solução

Eu sugiro que você experimente o exemplo de código-fonte de saída de tv no GITHub. https://github.com/JohnGoodstadt/TVOut.

Ele usa um código semelhante ao seu, mas embalado em uma classe, que você pode copiar e chamada a partir de seu próprio código.

Isso deve resolver o seu problema de exibição.Pelo jeito eu não iria fazer seu código logo no início da 'didFinishLaunchingWithOptions", mas mais tarde no primeiro controlador de visualização.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top