2012-10-18 23 views
5

iOS 6でステータスバーの色合いを使用する方法がわかりません。この質問は Change statusbar tint colour ですが、この問題は解決していません。ステータスバーの色がiOS 6の黒色に変わります

WWDC 2012の高度な外観のカスタマイズで説明されているように、目標の概要ペインで設定を行い(スタイルと色合いのデフォルト)、ステータスバーの色合いパラメータの辞書をinfo.plistに追加しました。

起動時にステータスバーが正しく表示されますが、別のビューコントローラに移動するとステータスバーが黒に変わります。

第2のビューコントローラは、それ自身のナビゲーションコントローラに組み込まれています。これが問題の根源だろうか?

原因が何であれ、誰かが私のステータスバーをアプリケーション全体で一貫して色づけできるようにするソリューションを提供できることを願っています。

何か助けが必要な場合は、事前に明確化と感謝が必要な場合は教えてください。

答えて

13

今日、私は同じ問題に遭遇しましたが、納得のいく答えのどれも私を助けませんでした。

私自身の色(赤、青、緑、アルファ)を​​定義して以来、私はIB経由でUIStatusBarを追加したくなかったので、私はワンラインソリューションが必要です。

  1. ドロップダウンメニューから、プロジェクトの概要を選択ステータスバースタイルブラックTransculentで:以下は、私のために働いている間のためにテストした後

    。どういうわけか

    self.window.backgroundColor = [UIColor redColor]; //example color

application: didFinishLaunchingWithOptions:

お楽しみにコードを経由してスタイルを設定するときに、これは私のために動作しません:application: didFinishLaunchingWithOptions:

  • は、次のコード行を入力してください!

  • +1

    ステータスバーのスタイルが次のように設定されていると、これはうまくいきます: application.statusBarStyle = UIStatusBarStyleBlackTranslucent。 – geraldWilliam

    +0

    あなたの返信ありがとう!あなたは正しいです、私は私の答えを編集します! – pmk

    +0

    ありがとう!私はすでに複数のナビゲーションバーを使用していて、それらの間を切り替えることでステータスバーの色が消えてしまったので、私が本当にプロジェクトを台無しにするuinavigationbarメソッドを使用しなければならないことを恐れていました。これは素晴らしい仕事でした! – fellowworldcitizen

    0

    第2のビューコントローラは、自身のナビゲーション コントローラに組み込まれています。これが問題の根源だろうか?

    これはおそらく問題ですが、plistエントリがグローバルになると思うでしょう。 UIAppearanceを使用してプログラムで設定しようとしましたか(iOS6 +のみをサポートしていると仮定します)?

    [[UITabBar appearance] setTintColor:[UIColor redColor]]; 
    
    +0

    私が誤解していない場合、iOS 6のステータスバーは、UITabBarではなくUINavigationBarからその色合いを取得します。私は外観プロトコル(iOS 5+で実際に利用可能)を使っ​​てナビゲーションバーの外観を設定しました。ナビゲーションバーのカスタムイメージは、アプリケーション全体で期待どおりに表示されます。ただし、初期ナビゲーションコントローラがビューから削除された後、ステータスバーはナビゲーションバーの色合いを取得できません。再度ナビゲートしてもステータスバーは黒のままです。 – geraldWilliam

    +0

    申し訳ありませんが、UINavigationBarになっているはずです。 –

    1

    解決策の1つは、インターフェイスの目に見えないナビゲーションバーを置くことです。すでにナビゲーションインターフェイスに入っている場合は、UINavigationControllerをサブクラス化する必要があります。例:

    UINavigationBar* nav = [[UINavigationBar alloc] initWithFrame:CGRectMake(0,0,320,1)]; 
    nav.tintColor = [UIColor redColor]; 
    nav.alpha = 0; 
    [self.navigationBar.superview addSubview:nav]; 
    

    ナビゲーションバーの色合いや背景色に関係なく、ステータスバーは赤色になります。これは、ナビゲーションバーがない場合にも機能します。

    クレジットの対象となるクレジット。 alphahttps://stackoverflow.com/a/13587525/341994から0に設定する考えがありました。

    関連する問題