Rodhos Soft

備忘録を兼ねた技術的なメモです。Rofhos SoftではiOSアプリ開発を中心としてAndroid, Webサービス等の開発を承っております。まずはご相談下さい。

AppDelegateでの向きの指定について

- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window

これをAppDelegateに実装するとシステムから特定のウィンドウにおいてビューコントローラで使うインターフェースの向きが尋ねられる。

このメソッドはアプリによってサポートされるインターフェースの向きの全セットを返すべきである。あるビューコントローラが回転するかどうか決定する際に、このメソッドによって返される向きとルートビューコントローラあるいはトップに表示されているビューコントローラによってサポートされている回転は"Intersect"される(積集合がとられる)ので、アプリとビューコントローラは許される回転が一致していなければならない。

もし、このメソッドが実装されていないなら、アプリはデフォルトとしてInfo.plistのUIInterfaceOrientationキーにおける値を用いる。


要するに、App側は最大で許容する回転方向を決め、個々のビューコントローラが更に回転を制限したい場合はすることになる。


個々のUIViewControllerだが
iOS6では
shouldAutorotate
supportedInterfaceOrientations
preferredInterfaceOrientationForPresentation (必要に応じて)

iOS5では
shouldAutorotateToInterfaceOrientation