[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
関連記事
-
-
[iOS SDK] 消音モードでも音を再生する対応を入れました
昔、 iPhone/iPad はサイレントモードにしても音が鳴る という記事を書いたけれども
-
-
はじめてのiPhoneプログラミング 正誤表
発売されてからすぐ はじめてのiPhoneプログラミング を購入し、必要に応じて少しずつ読み進めてい
-
-
QUICCO Sound mi.1rev.3
Bluetooth でMIDI信号を飛ばせる QUICCO sound mi.1 について。以前 K
-
-
TestFlight を使ったベータテストについて
アプリのベータテストにご協力いただきありがとうございます。ベータテストには、AppleのTestFl
-
-
Admob に関して少し調べてみた
iPhoneアプリとAndroidアプリでAdmobを使って広告を表示してみているが、いまだに管理画
-
-
[iOS SDK] Olympus Camera Kit で Pebble連携アプリを作ってみた
3月25日にOLYMPUS AIR A01が発売されたが、このカメラはOPC(Open Pl
-
-
Wi-Fi体重計Withings WS-50 を買ったのでSDKを試してみる
奥さんからの要望でスマホと連携する体重計を検討していたが、いつの間にかWithingsのWS-50が
-
-
iPhone開発のネタ帳: sonsongithub の PopupView を使ってみた
自作アプリで sonson 氏の PopupView を使わせていただいてます。 Softwar
-
-
US Unlocked にてiPad 購入、無事入手
日本の発売まで待つか結構悩んだけれども、なるべく早く自作アプリの動作確認をしておきたいということもあ
-
-
Apple Watch用バッテリーロガーを公開しました
1年前に開発し、App StoreにSubmitしたものの Rejectされ続けていたアプリをその