Я хочу создать приложение для iPad, которое помимо обычного экрана iPad (4:3) использует второй UIScreen, содержащий UIWindow в широкоэкранном формате 16:9, если подключен второй экран.
Я использую AppleTV для подключения.
Я не просто хочу отразить экран ipad на телевизоре, потому что тогда это просто изображение 4: 3 - я хочу, чтобы он использовал весь широкоэкранный формат 16: 9.
Итак, я начал и настроил второй UIScreen, и теперь окно отображается в широкоэкранном формате с зеленым фоном на телевизоре.
//Check for Second Screen and if available, make a second UIWindow and put it on the second screen
NSArray* connectedScreens = [UIScreen screens];
NSInteger numberOfScreens = [[UIScreen screens]count];
NSLog(@"Number of screens connected: %d",numberOfScreens);
if (numberOfScreens > 1) {
//we have a second screen connected, display an extra window on the second screen
UIScreen* secondScreen = [connectedScreens lastObject];
UIWindow* secondWindow = [[UIWindow alloc]initWithFrame:secondScreen.bounds];
secondWindow.backgroundColor = [UIColor greenColor];
[secondWindow setScreen: secondScreen];
[secondWindow makeKeyAndVisible];
self.tvWindow = secondWindow;
}
Все идет нормально.
Но теперь я не уверен, как настроить иерархию навигации/представления.
Я хочу показывать одни и те же данные на обоих UIScreens (ipad + TV), просто оптимизированных для разных размеров экрана.
Поскольку у меня есть точно такие же данные, которые должны отображаться, и я не хочу, чтобы разные экземпляры похожих viewControllers плавали вокруг, я подумал, что могу использовать два xib-файла на ViewController, один для просмотра ipad 4: 3, помещенный в «представление». ' свойства viewController и один xib для широкоэкранного телевизора 16:9, помещенный в свойство 'tvView' того же viewController.
В ipad UIWindow есть UINavigationController, чередующий различные UIViewController.
Поэтому, если я нажму ViewController на контроллер навигации окна ipad, я могу добавить соответствующий tvView из TV-xib в UIWindow экрана телевизора.
Я на правильном пути здесь? Как бы вы это сделали?
небольшой набросок: :)