Вопрос

Я пытаюсь поддерживать внешний дисплей в моем приложении iOS без использования файлов .xib.

прямо сейчас мой код содержит это:

- (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];
}
.

Когда я запускаю это, экран TV Out будет закрыт немедленно. Если я комментирую эту строку:

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

Экран TV Out будет работать правильно, но, конечно, я ничего не вижу на моем экране симулятора.

У кого-нибудь есть идеи, что я должен сделать?Заранее спасибо!

Это было полезно?

Решение

Я могу предложить вам попробовать выборочный код исходного кода TVOUT на Github - https://github.com/johngstaDstad/tvout.

Он использует аналогичный код для вашего, но упакованный в классе, который вы можете скопировать и звонить из своего собственного кода.

Это должно решить вашу проблему отображения.Кстати, я бы не сделал свой код еще ранним, как в «DidfiniShlaunchingWittions», но позже в первом контроллере представления.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top