AppDelegateでの向きの指定について
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
これをAppDelegateに実装するとシステムから特定のウィンドウにおいてビューコントローラで使うインターフェースの向きが尋ねられる。
このメソッドはアプリによってサポートされるインターフェースの向きの全セットを返すべきである。あるビューコントローラが回転するかどうか決定する際に、このメソッドによって返される向きとルートビューコントローラあるいはトップに表示されているビューコントローラによってサポートされている回転は"Intersect"される(積集合がとられる)ので、アプリとビューコントローラは許される回転が一致していなければならない。
もし、このメソッドが実装されていないなら、アプリはデフォルトとしてInfo.plistのUIInterfaceOrientationキーにおける値を用いる。
要するに、App側は最大で許容する回転方向を決め、個々のビューコントローラが更に回転を制限したい場合はすることになる。
個々のUIViewControllerだが
iOS6では
shouldAutorotate
supportedInterfaceOrientations
preferredInterfaceOrientationForPresentation (必要に応じて)
iOS5では
shouldAutorotateToInterfaceOrientation