頭と尻尾はくれてやる!

パソコンおやじのiPhoneアプリ・サイト作成・運営日記


iOS 7のナビゲーションバーまわりの変更点は要注意

特にコードはないんだけど、、、ちょっと注意しないといけない場合があるってことで。
iOS 7でナビゲーションバーの操作が少し変わったよね。普通に使っているとなかなか気付かないような地味な変更なんだけど開発者は要注意だよ。
設定アプリなんかで試せばすぐにわかるんだけど、
[self.navigationController pushViewController:viewController animated:YES];
てな感じで次の画面に行くでしょ。

今までだと基本は左上のボタンで戻っていたけど、iOS 7だと画面左はしから指を右へ動かしていくと画面が指に従って操作できるんだよね。指に沿うから途中で戻るのをやーめた、なんてこともできる。
4インチ化の時にちょっと左上の戻るボタン押しにくいよなってなったけど、これなら片手でも簡単に操作できるし、元の画面のタイトルが青から黒に変化してく様が美しいぜえ!なんて最初は感心していたんだけどさ、、、俺アプリだと落ちる場合があったんだ。

画面Aでpush → 画面B
とするよ。よくあるパターンだと画面Aはテーブルビューでいろんな項目があって、あるセルをタップするとその項目の詳細を画面Bで選択できる、とかあるよね。
こういう構成の場合、今までだと左上のボタンを押すと

B, viewWillDisappear:
A, viewWillAppear:
B, viewDidDisappear:
A, viewDidAppear:

↑こんな順番にメソッドがコールされる。これはiOS 6でも7でも同じ。
ところが、iOS 7で戻るのやーめた、ってのができるようになったわけだけど、その場合は、、、

B, viewWillDisappear:
A, viewWillAppear:
↑戻り始めた時にこれがコールされる。
やっぱりやーめた、と画面Bに完全に戻った時に

A, viewWillDisappear:
A, viewDidDisappear:
B, viewWillAppear:
B, viewDidAppear:
↑こんな順でメソッドがコールされる。

こういう流れを考慮しておかないと、アプリが落ちたり、画面Aが全部表示されてから内容がパッと書き換えられるという微妙に悲しいことになるんだよね。

<< SpriteKitの物理エンジン使ってみた   TopPage  iOS 7で画像を使ったボタンを青くしたい >>

コメント


管理者にだけ表示を許可する
 

トラックバック

トラックバックURL
http://ringsbell.blog117.fc2.com/tb.php/812-93c4cf37




Copyright ©頭と尻尾はくれてやる!. Powered by FC2 Blog. Template by eriraha.

FC2Ad