[xcode] 画面の回転を制御する。

Appleのリジェクトが激しいらしく画面の回転を固定にするのは望ましくないらしい。
でも、回転するアプリは使いづらい。・・・と思う。
そして、他のアプリで見たことがある「回転をアプリ内で停止する」モードを付けてみようと思った。
iOS6より前と後で仕様が変わったらしく、古い記事ばかりネットで引っかかり、非常に時間がかかったが、ようやく成功したので備忘録とする。
ひっかかったポイントは2点あり、
1つ目は、iOS6以降の場合は最新の書き方をしなければいけないということ。
2つ目は、TabBarを使っている場合はそれにぶら下がるUIViewControllerではなく、UITabBarのviewcontrollerに記述しなければならない。
記述としては簡単で
1 2 3 4 5 6 7 8 9 10 |
- (BOOL)shouldAutorotate { if (/*何かフラグ判定*/) { return YES; } return NO; } - (NSUInteger)supportedInterfaceOrientations { return UIInterfaceOrientationMaskAll; } |
return NO;で、回転しない。
return YES;で、回転する。
フラグは下階層のVCで行う場合は、「NSUserDefaults」を使うといいぞ。
これで進めてみよう。