我正在尝试在我的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];
}
当我运行时,电视输出屏幕将立即关闭。 如果我评论这一行:
//self.window = [[UIWindow alloc] initWithFrame:[[[UIScreen screens] objectAtIndex:0] bounds]];
TV Out屏幕可以正常工作,但当然我在模拟器屏幕上看不到任何内容。
有谁知道我应该怎么做?提前谢谢!
答案 0 :(得分:3)
我建议您在GITHub上试用示例源代码TVOut - https://github.com/JohnGoodstadt/TVOut。
它使用与您类似的代码,但打包在一个类中,您可以复制并从您自己的代码中调用。
它应该可以解决您的显示问题。顺便说一句,我不会在'didFinishLaunchingWithOptions'中执行您的代码,但稍后会在第一个视图控制器中执行代码。