Как настроить иерархию представлений для приложения iPad с широкоэкранным выходом в формате 16:9 для трансляции

Я хочу создать приложение для 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 экрана телевизора.

Я на правильном пути здесь? Как бы вы это сделали?

небольшой набросок: просмотреть набросок иерархии:)


person Etienne678    schedule 10.07.2012    source источник


Ответы (1)


Это звучит правильно. Если вы разрешаете пользователю взаимодействовать с вашим навигационным контроллером, вам придется зарегистрироваться как delegate контроллера, чтобы вы могли отслеживать, что происходит с вашим навигационным стеком на iPad, и соответствующим образом переключать свои телевизионные представления.

person Noah Witherspoon    schedule 10.07.2012