
iOS8 を甘く見ていたようで、いろいろな問題が発生している。
今回発見したのは おんぷちゃん for iPad で presentModalViewController を使って表示している結果表示画面内の部品がずれて表示されて、ボタンが押せないという問題。
試してみればすぐ発見できる問題だったが、iOS8 上でのチェックが甘かった。
- (void)viewWillAppear:(BOOL)animated {
int w = self.view.bounds.size.width;
int h = self.view.bounds.size.height;
MY_LOG(@"%d %d", w, h);
調査の結果、なぜか viewWillAppear で部品の配置を行っているためだった。
iOS7 まではこれでも正しく動いていたのだが、iOS8 からは、ModalView のサイズ(540, 620)ではなく、画面全体のサイズ (768, 1024)が返ってきていた。
とりあえず viewDidAppear に処理を移動したところ正しく表示されるようになったが、一瞬部品の再配置が見えてしまうので、viewDidLoad で部品を非表示にして、viewDidAppear で表示するようなWorkaroundを入れました。
それと、いまさらながら iOS6からはUITextAlignmentCenter が Depricated となり、NSTextAlignmentCenter を使う必要があることを知った。
Label Alignment in iOS 6 – UITextAlignment deprecated – Stack Overflow
iOS8 はiPhone6 Plus 対応など内部的には大きな変更が入っているようで、これまで起きたことがないような問題がたくさん起きている。
趣味の開発者には厳しい状況。