iPadの回転対応

iPadアプリを作る場合には、かならず回転に対応した状態で作らなければならぬらしい。

結論を先に言うと、Window-basedを使わずView-basedを使えと。

回転対応するにはUIViewController追加する。
これはきっと常識。



Window-basedなアプリを作成して、そこに必要なパーツを作成し追加していきながらアプリを組みたててた時。
popover使いたいなって思ってちょっと調べる。UIPopoverControllerはコンテンツの設定にUIViewControllerを使うようにAPIが設計されているので、ほぼ強制的にUIViewControllerのサブクラスを作成することになる。
これが回転対応してたらいいのではないか、、と思ってしまったのが間違いで、表示する為のpresentpopoverなんちゃらメソッドを実行しても表示はされるけども回転させると今まで表示してくれてたのがどこかにすっ飛ばされて、見えなくなってしまう。

UIViewControllerが必要というのは常識だけども、ちょっとした思い込みでハマってしまうんやね。

さて、これを解決する為にはpopoverを表示するメソッドpresentpopoverなんちゃらの実行時に指定するviewまたはbarbuttonitemが「回転対応するUIViewControllerに管理されたviewの上に乗っていること」が必要となる。

となると、結果として始めっからView-Basedなアプリにしとけばいいんじゃね?
たったこれだけで間違い少なく、ハマることもなく、面倒なく回転対応ができるわけ。

いじょ。


[参考]