IOS внешний дисплей программно
-
13-12-2019 - |
Вопрос
Я пытаюсь поддерживать внешний дисплей в моем приложении 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», но позже в первом контроллере представления.