2011-07-11 1 views
1

私のアプリケーションでは、メイン画面(ipad)と外部ディスプレイ画面が別のものを表示するように、セカンダリウィンドウを作成してサブビューを追加します。ユニークなコンテンツを表示するために外部ディスプレイを使用した後で、iPadアプリケーションでアプリのミラーリングを再び有効にするにはどうすればよいですか?

私の質問は、一意のコンテンツが表示されなくなったら、どのようにデフォルトのアプリケーションのミラーリングを再び有効にすることができますか?私は作成したウィンドウを解放するだけで、画面のmirroredScreenプロパティを設定しようとしましたが、読み取り専用です。ここで

は、外部モニタ上のユニークなコンテンツを追加するためのコードです:

if ([[UIScreen screens] count] > 1) { 
     //allocate another window 
     UIScreen* secondScreen = [[UIScreen screens] objectAtIndex:1]; 
     CGRect screenBounds = secondScreen.bounds; 

     secondWindow = [[UIWindow alloc] initWithFrame:screenBounds]; 
     secondWindow.screen = secondScreen; 

     shareViewController.view.hidden = NO; 

     //add the shareViewController's view to the external display 
     shareViewController.view.frame = secondWindow.frame; 
     [secondWindow addSubview:shareViewController.view]; 
     secondWindow.hidden = NO; 


    } 

答えて

0

ジャストウィンドウを削除します。ミラーリングが再び有効になります。

secondWindow = nil; 
0

2番目のウィンドウをnilに設定するだけでは機能しませんでした。 次のコードを組み合わせると、そのトリックが実行されました。まず、secondWindowをリセットし、もう一度タッチしてメイン画面を再割り当てします。

// Reset the second window 
self.secondWindow.frame = CGRectZero; 
self.secondWindow.screen = nil; 
self.secondWindow = nil; 

// Reassign your main screen to make it work with touches again 
UIWindow *mainScreen = [[[UIApplication sharedApplication] windows] firstObject]; 
[mainScreen makeKeyAndVisible]; 
関連する問題