2012-02-17 1 views
0

UIWindowにサブビューとして2つのビューコントローラが追加されています。今問題は、ビューの1つはビューローテーション呼び出しを取得しますが、2番目のビューはビュー変更方向の呼び出しを取得していません。 私の問題は、UIWindowで追加された2つの異なるView Controllerの向きの変更呼び出しを取得する方法です。UIResponderの2つのリスナーを追加する

答えて

1

UIWindowは、rootViewControllerにのみローテーションメッセージを送信します。あなたのrootViewControllerは、他のビューコントローラに回転メッセージを送信するために

  1. 書き込みコード:あなたがそれらを受け取るために、他のビューコントローラが必要な場合は、2つのオプションがあります。
  2. ビューコントローラの格納を実装します。 UIViewControllerを実装するビデオをWWDC 2011から見ることでこれを行う方法を学んでください。
+0

は、どのように私は(プロパティの作品をリサイズ自動を意味する)ビューを回転するコードを記述しないような方法でのViewControllerする回転コールを送信することができます。私はCGAffineTransformを使ってビューを回転させたくありません –

+0

あなたのビューを 'UIWindow'のサブビューにする場合は、' CGAffineTransform'を使う必要があります。 'UIWindow'は' rootViewController.view'の変換を設定します。他のサブビューをウィンドウに追加する場合は、自分で変換を設定する必要があります。 –

+0

あなたは、ウィンドウの1つのサブビューを持ち、2つ目のView Controllerのビューをそのビューのサブビューにする方が簡単でしょう。 –

0

デバイスの向きを登録します。

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications]; 
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(detectOrientation) name:@"UIDeviceOrientationDidChangeNotification" object:nil]; 

方法でチェック、

if (([[UIDevice currentDevice] orientation] == UIDeviceOrientationLandscapeLeft) || 
     ([[UIDevice currentDevice] orientation] == UIDeviceOrientationLandscapeRight)) { 


} 
関連する問題