iOS7のナビゲーションバーの半透明をコード上で失くす
デベロッパーにとってはもうウンザリなiOS7対応ですが、
やっぱり対応しないと文句を言われるので、対応せざるを得ないです。
既存のアプリをiOS7で動かしたときに最も遭遇率が多いのは、
なんかしらんけどナビゲーションバー分だけ上がってることでしょう。
↓こんな感じで上に64pxほど上がる
これは、ナビゲーションバーが透過扱いになっていることが原因です。
常に、いわゆるフルスクリーン状態となるみたいです。
これを失くす、つまりiOS6以前の挙動に戻すには次のコードを書き加えます。
- (void) viewDidLoad { self.navigationController.navigationBar.translucent = NO ; ... }
self.navigationController.navigationBar.translucent = NO ;
これだけで透過を防ぐことができます。
挙動についての違いや、IB(インターフェイスビルダー)での解決策はこちらを参照。
iOS7の強制フルスクリーンに関するiOS6とiOS7のNavigationBarの挙動の違い