我想创建一个 iPad 应用程序,除了普通的 ipad 屏幕 (4:3) 之外,如果附加了第二个屏幕,它还使用包含 16:9 宽屏格式的 UIWindow 的第二个 UIScreen。
我使用 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 的不同实例漂浮在周围,所以我想我可以为每个 ViewController 使用两个 xib 文件,一个用于放入“视图”的 4:3 ipad 视图' viewController 的属性和 16:9 宽屏电视的一个 xib,放入同一 viewController 的 'tvView' 属性中。
ipad UIWindow 有一个 UINavigationController 旋转不同的 UIViewControllers。
因此,如果我将 ViewController 推到 ipad Window 的 Navigationcontroller 上,我可以将 TV-xib 中的相应 tvView 添加到 TV 屏幕的 UIWindow。
我在正确的道路上吗?你会怎么做?
一个小草图: :)