ViewDidLoad内に書く #if __IPHONE_OS_VERSION_MAX_ALLOWED >= 30200 // 外部スクリーン接続のノーティフィケーションを登録 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(screenDidConnect) name:UIScreenDidConnectNotification object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(screenDidDisconnect) name:UIScreenDidDisconnectNotification object:nil]; // 外部スクリーンに接続 [self screenDidConnect]; #endif // 表示部分 - (void)screenDidConnect{ NSLog(@"Enable Video Out"); NSArray *screens = [UIScreen screens]; for (UIScreen *screen in screens){ // メインスクリーン以外であれば if(screen != [UIScreen mainScreen]){ NSArray *modes = [screen availableModes]; // 対応解像度をチェック CGSize max_screen; UIScreenMode *maxScreenMode; for (UIScreenMode *mode in modes){ // 対応解像度からもっとも高いものを選択する if(max_screen.width < mode.size.width){ max_screen = mode.size; maxScreenMode = mode; } } // まだ外部ウィンドウが開かれてないなら if(externalWindow == nil){ screen.currentMode = maxScreenMode; // 解像度設定 externalWindow = [[UIWindow alloc] initWithFrame:CGRectMake(0, 0, maxScreenMode.size.width, maxScreenMode.size.height)]; externalWindow.backgroundColor = [UIColor grayColor]; // 0.9: 外部出力用(Viewサイズは外部スクリーン次第で変更) CGRect frame; frame.size.width = maxScreenMode.size.width; frame.size.height = maxScreenMode.size.height; [exview setFrame:frame]; // 0.9: 外部出力用 //[eXpastNumbers setLineBreakMode:UILineBreakModeWordWrap]; //改行モード(0.9: 外部出力用) eXpastNumbers.numberOfLines = 2; // ラベルを複数行OKにする(0.9: 外部出力用) exview.clipsToBounds = YES; // 結果表示は、640x480, 1024x768, 1280x720と縦を軸にして考えるのがよい。 // 横方向は自動調整を有効にしとけばいいしね。 //eXresultNumber.font = [UIFont systemFontOfSize:64*(eXresultNumber.frame.size.height / 64)]; eXresultNumber.font = [UIFont systemFontOfSize:eXresultNumber.frame.size.height]; eXresultNumber.adjustsFontSizeToFitWidth = YES; eXpastNumbers.font = [UIFont systemFontOfSize:24]; [externalWindow addSubview:exview]; // 表示するViewを設定 externalWindow.screen = screen; externalWindow.hidden = NO; [externalWindow makeKeyAndVisible]; // スクリーンへ表示 } } } } // 切断時 - (void)screenDidDisconnect{ // ビューを外部ウィンドウから取り除く [view removeFromSuperview]; // 外部ウィンドウのメモリを解放する [externalWindow release]; externalWindow = nil; }