[编辑] 我重新启动了iPad,它解决了这个问题。我将它留在这里,因为堆栈溢出不鼓励删除问题
我在iPad Air 2上发生了一件奇怪的事情。使用https://developer.apple.com/library/ios/documentation/WindowsViews/Conceptual/WindowAndScreenGuide/UsingExternalDisplay/UsingExternalDisplay.html
中提到的方法我为通过AirPlay连接的辅助显示器创建了一个新的UIWindow
对象。
- (void)checkForExistingScreenAndInitializeIfPresent {
if ([[UIScreen screens] count] > 1)
{
// Get the screen object that represents the external display.
UIScreen *secondScreen = [[UIScreen screens] objectAtIndex:1];
// Get the screen's bounds so that you can create a window of the correct size.
CGRect screenBounds = secondScreen.bounds;
self.secondWindow = [[UIWindow alloc] initWithFrame:screenBounds];
self.secondWindow.screen = secondScreen;
NSLog(@"Show external window");
// Set up initial content to display...
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Test" bundle:[NSBundle mainBundle]];
UIViewController *controller = [storyboard instantiateInitialViewController];
self.secondWindow.rootViewController = controller;
// Show the window.
self.secondWindow.hidden = NO;
}
}
当我在iPhone 5s上运行此代码时,代码完美运行并初始化辅助窗口。但是,当我从iPad Air 2上的Xcode运行此代码时,我只看到黑屏。如果应用程序未通过Xcode运行,则应用程序将在iPad上启动,但在AirPlay显示屏上,它仅显示主屏幕,并突出显示应用程序图标。音频仍然通过AirPlay路由。
非常感谢任何帮助。
答案 0 :(得分:1)
通常我们会改变我们的UIWindow颜色:
[UIApplication sharedApplication].keyWindow.backgroundColor = [UIColor myColor];
您可以将self.secondWindow颜色设置为:
secondWindow.backgroundColor = [UIColor whiteColor];
答案 1 :(得分:1)
这是一个荒谬的案例,解决方案同样荒谬。我重新启动了iPad,问题就消失了。