在我的iOS应用程序中,我需要在外部显示器上显示自定义内容(使用AirPlay)以及在电视上镜像某些屏幕。 为了呈现自定义内容,我使用Multiple Display Programming Guide for iOS中的代码并且效果很好:我的iPad处于镜像状态。 AirPlay模式我可以在电视上显示一些内容。但是,文件说6
要在显示唯一内容后重新启用镜像,只需从相应的屏幕对象中删除您创建的窗口。
这部分根本不起作用。我只是无法破坏我用来在外部屏幕上显示内容的窗口。这是代码:
- (void) destroySecondWindow{
if (secondWindow){
for( UIView* view in secondWindow.subviews ){
[view removeFromSuperview];
}
secondWindow.backgroundColor = [UIColor clearColor];
secondWindow.hidden = YES;
// Hide and then delete the window.
[secondWindow removeFromSuperview];
secondWindow = nil;
}
}
只有当一个特定的视图控制器可见时才应显示唯一内容,我试图破坏外部窗口,如下所示:
- (void) viewWillDisappear:(BOOL)animated{
[self destroySecondWindow];
}
以下是我创建第二个窗口的方法:
- (void) createSecondWindowForScreen:(UIScreen*)screen{
if( screen == nil || secondWindow != nil ){
return;
}
CGRect screenBounds = screen.bounds;
secondWindow = [[UIWindow alloc] initWithFrame:screenBounds];
secondWindow.backgroundColor = [UIColor blueColor];
secondWindow.screen = screen;
[secondWindow setHidden:NO];
}
所以问题是:在电视上显示独特内容后,是否有人知道如何重新启用屏幕镜像?
提前致谢!