2012-09-20 16 views
13

I持って、次の星座:は、iOSのビュー6

メインビュー(カスタムのUIViewController、無navigationcontrollerまたはナビゲーションバー)であり、第2のテーブルビューコントローラにモーダルseguesボタンを含みますナビゲーションコントローラに埋め込ま:

MAINVIEW - >ナビゲーションコントローラ - TableViewControllerオン - >テーブルビュー

MAINVIEWのステータスバーには、ブラック(ステータスバーがデフォルトに設定されていてもiOSの6と変更なし)がありますステータスバーにはDefault Style(iOS 5のグレー、Blu e iOS 6のナビゲーションバーにより色づけされています)。

if ([[UIApplication sharedApplication] respondsToSelector:@selector(setStatusBarStyle:)]) { 
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault]; 
} 

が発生した注目のiOS 6の下にこれを実行する:IOSの5では

これはTableViewControllerのコードの次の行によって容易でした。これどうやってするの?私は可能なすべてのステータスバーの設定をプロジェクトの概要とplist(ここに記載されているように:https://stackoverflow.com/a/12468689/1685971

また、ストーリーボードですべての正常に見えます。シミュレータやデバイス上のアプリを実行することが違って見える: Storyboard Simulator

答えて

5

が、これは "ハック" してみてくださいは、 : 最初のビューコントローラにナビゲーションバーを追加する必要があります。次に、2つの可能性があります。

1)0

又は

2にナビゲーションバーのアルファ値を設定)-43px(ここで見てバーのy位置を設定:http://moduscreate.com/tinting-your-status-bar-in-ios6-and-phonegap/)を

EDIT:

適切な色を得るには、不可視のUINavigationBarのtintColorを設定する必要があります。したがって、デフォルトでは黒に設定されています。ボタンアクションでは、tintColorをnavigationController.navigationBar.tintColorに設定する必要があります。閉じるボタンの操作で、[UIColor blackColor]に戻す必要があります。

+0

imo機能ステータスバーの色付けがAppleによって完全に実装されていません。あなたのソリューションは回避策です。クリーンなソリューションは、最初のView Controllerだけでなく、各View Controllerでステータスバーの色合いをチェックすることです。 – FrankZp

2

最初のビューコントローラが機能を動作させるためのナビゲーションコントローラ/バーを持っている必要があります。 ステータスバーは、アプリケーション全体で色が変わらない(iOS6)ですが、開始ビューのナビゲーションバーの色に適応します。開始ビューにナビゲーションバーが含まれていない場合、ステータスバーは色に適応しません。 (http://i.stack.imgur.com/n9ubK.pngを参照)

+0

はいこの新しい機能は、上部ナビゲーションバーの色を選択してステータスバーの色合いを調整します。しかし、ここでの要件は、最初のView Controllerにナビゲーションバーがないことです。iOS 5では、これは上記のコードで可能でした。しかし、iOS 6ではステータスバーは変更できません! – FrankZp

+1

_ TableViewControllerの場合、ステータスバーにはDefault Style(iOS 5ではグレー、iOS 6ではナビゲーションバーによりBlue Tinted)が設定されています。この仮定は間違っています。 –

+0

上記のコードは、TableViewControllerのステータスバーをDefault Styleに設定します。これはiOS5で動作します - iOS6ではなく(ステータスバーは黒のままです - シミュレータのスクリーンショットを参照)。 – FrankZp

0

ナビゲーションバーのスタイルをtableviewcontrollerに設定する必要はありません。

この方法をお試しください。 1.メインビューにナビゲーションコントローラを追加します。 2. hiddenプロパティをyesに設定します。 3. tableviewcontrollerを表示すると、ノー

ナビゲーションコントローラに隠されたナビゲーションバーのプロパティ設定 - >バーの隠し=はい - > MAINVIEW - >バー隠さ=なし - >テーブルビュー

+0

問題は、TableViewControllerがモーダルで表示されることです。したがって、MainViewControllerとTableViewControllerを同じナビゲーションコントローラに組み込むことはできません(ストーリーボードのスクリーンショットを参照)。 2つのナビゲーションコントローラ(MainView用と1つはTableView用)を使用すると、上記の問題は同じままになります。 – FrankZp

関連する問題