1

皆さん、良い時間です!iOS 7 は、特に外観のカスタマイズに関して、それほど面白くなく、文書化されていない多くの「機能」で私たちを歓迎してくれました。私の問題は次のとおりです。

アプリケーションの plist で [コントローラーベースのステータス バーの外観を表示] を [YES] に設定しました。現在のステータス バー スタイルをプログラムで取得するにはどうすればよいですか? のような古いコード

[UIApplication sharedApplication].statusBarStyle

常に UIStatusBarStyleDefault を返し、viewcontroller からのスタイルを無視します。

将来の誤解を防ぐために: statusBarStyle プロパティを機能させるつもりはありません。「コントローラーベースのステータスバーの外観を表示」をオンにして新しい方法を探しています。「アドバイス」から頑固にそれをオフにしてください。

4

4 に答える 4

2

私の答えが見つかりました... コントローラーベースのステータスバーの外観の表示がオンになっている場合、次のようなスタイルが得られます。

[[[[UIApplication sharedApplication] keyWindow] rootViewController] preferredStatusBarStyle]

また、ナビゲーション/タブバー コントローラーなどを考慮する必要があります。独自のものがある場合は、次のことができます。

- (UIStatusBarStyle) preferredStatusBarStyle
{
    return [[ self selectedViewController] preferredStatusBarStyle];
}

タブバーコントローラーのサブクラスと

- (UIStatusBarStyle) preferredStatusBarStyle
{
    return [[self visibleViewController] preferredStatusBarStyle];
}

タブバーコントローラー用。

于 2013-10-25T14:03:43.947 に答える
2

これを試して..

 UIStatusBarStyle style=[[UIApplication sharedApplication] statusBarStyle];
于 2013-10-21T06:50:58.003 に答える