私はいくつかのペン先を持つ iPhone アプリケーションを開発しており、横向きのみにする必要があります。
アプリケーションは、Info.plist ファイルを介してランドスケープ モードで起動するように設定されています。
と の 2 つのビュー コントローラーが
FirstViewController
ありSecondViewController
ます。
これらのそれぞれについて、ビューが横向きのnibファイルがあります。どちらのビュー コントローラーもMainView
アウトレットとして nib に追加され、それらのビューは遅延初期化されます。
アプリケーションが読み込まれると、期待どおり、最初のビューが横向きで表示されます。ただし、2 番目のビューに切り替えると、デバイス (またはシミュレーター) は横向きのままですが、デバイスが縦向きモードであるかのようにビューが回転し、インターフェイスが壊れます。
両方のUIViewController
クラスに次のコードがあります。
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return interfaceOrientation == UIInterfaceOrientationLandscapeRight;
}
ビューを切り替えるには、アプリのデリゲートで次のことを行っています。
[viewController.view removeFromSuperview];
[window addSubview:secondViewController.view];
ここでviewController
とsecondViewController
は、View Controller が接続されている 2 つのアウトレットです。
これは、IB で 2 番目のビューがどのように見えるかです: 代替テキスト http://img27.imageshack.us/img27/4898/picture1ni.png
これはシミュレーターでどのように見えるかです: 代替テキスト http://img402.imageshack.us/img402/4866/picture2wt.png
2 番目のビューが横向きに表示されているのに、インターフェイスが回転しているのはなぜですか?
変換プロパティを扱いたくないのは、やり過ぎに思えるからです。