[iOS] iOS6 から起動時に一度 Portraitになる挙動が変更された模様
iOS6 からは画面の回転関係の仕様が整理されたのか、いろいろと変更が入っている。
まず – (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
は使えなくなったので、その対応が必要。
これはいろいろなところに情報が書かれている。
その対応は入れていたつもりだったのだが、今回 Landscape 状態でアプリを起動してみたところ部品が正しく配置されない問題が発生してしまった。
いろいろ試してみたところ、iOS5 までは正しく動作するが、iOS6 から問題が発生することがわかった。どうやらこれまで呼ばれていた didRotateFromInterfaceOrientation が呼ばれなくなっているようだ。
hayate-works Note: アプリ起動時にデバイスが横向きだったときのUIViewControllerメソッド呼び出し順
にあるとおり、iOS5 まではLandscapeで起動しても Portrait の状態から始まっていたのだが、iOS6 からはその挙動が変更されており、Landscape で起動してくるようだ。
このため、Landscapeで起動したときには上記 URL で書いている didRotateFromInterfaceOrientation (Landscape) が呼ばれなくなってしまった。
Landscapeで起動しているのに一度Portraitになっていたのはある意味これまでの挙動がおかしかったわけだが、didRotateFromInterfaceOrientation が呼ばれることを期待してそのタイミングで部品を配置するコードを書いていた場合、画面表示がおかしくなってしまうことがわかった。
例えばこちらも同じ問題に遭遇しているようだ でらうま倶楽部 : OpenGL ES系はとくに。 iOS6への対応で気をつける事
View Controller Programming Guide for iOS: Supporting Multiple Interface Orientations

とりあえず iOS6でも viewDidAppear のタイミングではLandscape状態になっているので、そのタイミングで部品を配置したところ正しく配置されたが、他に良い方法がありそうな気がする。
同じような議論あり
willAnimateRotationToInterfaceOrientation not being called « Sparrow Forum
関連記事
-
-
iTunes Connect でたらいまわし
iTunes Connect でしばらくたらい回しにあっている。さすがにひどいので記録しておく。 i
-
-
はじめてのiPhoneプログラミング
さらにiPhoneプログラミング本が出るらしい。出版ラッシュですな。 これは568ページもあるらしい
-
-
スティーブ・ジョブズの王国 ― アップルはいかにして世界を変えたか?
Amazonからおすすめされてたまたま発見した本。2010年11月12日発売らしい。 原書はRetu
-
-
インド式計算マスター
最近朝起きたらやっているアプリ。 これはいい。今まで全く知らなかったインド式計算がいつの日かマスター
-
-
[iOS SDK] WatchKitでできることできないこと 2015年3月
Apple Watch発売日(2015年4月24日)までに自作アプリの WatchKit対応
-
-
[iOS SDK] No identities are available for signing 問題にはまる
久しぶりに Provisioning Profileではまった。 この問題にはまると、解決までにか
-
-
NSInternalInconsistencyException
久しぶりにiOS6以前のアプリをビルドしたら NSInternalInconsistencyExce
-
-
[iPhone 開発関連本] SQLite入門 第2版 西沢直木
SQLite はそれなりにクセがあるらしく、今までに入手した知識とFMDBのソースコードだけ(FMD
-
-
Xcodeの Console出力をクリアするキーバインド
いつも忘れるので、メモとして残しておく。Command(⌘)+ Kその他はこちら。 Menu Com
-
-
Clime もうすぐ発送?
自分以外に注目している人を見たことがない Clime だが、メールでせかしていたらもうすぐ発送してく