2012年10月25日木曜日

LandscapeのiPhoneアプリがiOS6のiPadで動かない。

完全に詰まりました。

今朝あるiPhoneのアプリをリジェクトされました。
テストの結果,最初の画面で全く反応しないことがあるとのこと。

そんなはずは・・・と思いながら,テストの内容にiOS6のiPadが入っていたので,
そういえばこの環境は試していなかったと思い動かしてみると,
確かに全く反応しませんでした。

条件を確かめたところ,
・このアプリを含め,Landscape(横長)表示のアプリで起こる
・iOS6のiPadシミュレータでのみ再現
・iOS6のiPhone,iOS5のiPadでは正常に動く
iOS6のiPadでも,一度x2を押してスクリーンサイズを変えると動く
 (しかもそのあとx1を押して元に戻しても動く)
・アプリをテスト用にportrait設定にすると正常に反応する

環境
・Xcode 4.5.1
・Deployment Target 5.1

一応対応するビューコントローラーには以下のコードを書いています。


- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return (interfaceOrientation == UIInterfaceOrientationLandscapeRight);
}

-(BOOL)shouldAutorotate
{
    return YES;
}

- (NSUInteger)supportedInterfaceOrientations
{
 return UIInterfaceOrientationMaskLandscapeRight;
}



ここから仮説ですが,問題の環境ではボタン等Viewの座標が取得できていないのでは・・・。
x2とかで再度デバイスが座標を計算した結果動くようになったみたいな・・・。

どなたか解決法をご存知でしたらコメント頂けないでしょうか。

10/26追記 暫定対策

0 件のコメント:

コメントを投稿