ページ

2012年9月20日木曜日

iOS6への対応

iOS6の開発は非常に難しくなった気がしています。
まだ慣れていないからというのはあると思うのですが、UIViewControllerの仕様変更に対応するのが煩わしく感じています。


- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation

で画面回転を制御していましたが、iOS6からは

- (BOOL)shouldAutorotate
- (NSUInteger)supportedInterfaceOrientations
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation

の3つで対応しなければならないようです。さらに面倒なのが、UINavigationControllerなどを使っていた場合、こちらにも手を加えないと上手く制御できない点です。もっと上手いやり方はいくらでもありそうですが、それを研究する時間は今のところとれなさそうです。
今まではUIViewControllerだけを相手にしていれば良かったのに、Navigationまで制御しなければならず、コード量が2倍になったように感じます。
細かい制御がしたいからこうなったのか、実際どういう経緯でこうなったのかはアップルしか分からないでしょうが、開発者としてはこういう変更は事前に詳細な通知なりほしいものです。Androidのように開発者の負担が多くならなければ良いのですが・・・。