重複の可能性:
UIWindow に追加された UIView の向き
ローディング ビューをサブビューとして追加すると[[[UIApplication sharedApplication] keyWindow] addSubview:myView.view]
(すべてのビューの上に来るように)、アプリが横向きにロックされていても、ビューの向きが縦向きに表示されます。add subview として直接追加すると、これは起こりません。
なぜ私がどこで間違っているのか考えていますか?
重複の可能性:
UIWindow に追加された UIView の向き
ローディング ビューをサブビューとして追加すると[[[UIApplication sharedApplication] keyWindow] addSubview:myView.view]
(すべてのビューの上に来るように)、アプリが横向きにロックされていても、ビューの向きが縦向きに表示されます。add subview として直接追加すると、これは起こりません。
なぜ私がどこで間違っているのか考えていますか?
コードがないとわかりにくいですが、サブビューをウィンドウに直接追加すると、ルート ビュー コントローラーのビューのサブビューではなく、向きの通知を受け取ることが原因である可能性があります。ウィンドウのサブビューに直接追加することを避けるか、必要に応じて、次のようにオリエンテーション通知に登録します。
[[NSNotificationCenter defaultCenter] addObserver:myView
selector:@selector(orientationChanged:)
name:UIDeviceOrientationDidChangeNotification
object:nil];
myView
次に、 View Controller に適切なメソッドを追加して、それを処理します。
コードがない場合も推測しますが、別の理論は、ビューを所有する ViewController が- (BOOL)shouldAutorotateToInterfaceOrientation:
ポートレートに対してのみ真の値で応答するというものです (xcode が提供するテンプレート vc コードの多くはデフォルトでこれを行うと思います)。
提供されたわずかなコードから、私たちが話している ViewController は myView と呼ばれている可能性があります (私が正しいとすれば、ViewController のインスタンスに「myView」という名前を選択するのは適切ではありません)。ViewController の shouldAutorotate の実装を確認してください... 向きが横向きの場合に YES と応答することを確認してください。