4

以前のバージョン用に最初に設計された iOS7 でアプリを実行すると、暗い灰色のナビゲーション バーが、テキストが黒のステータス バーに色を付けます。

私はそれを最新バージョンに適応させようとしており、次のように UIApplication.statusBarStyle を UIStatusBarStyleLightContent に設定しています:

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:YES];

このコードは、ステータス バーのテキストの色を白に変更する必要がありますが、そうではありません。UIApplication インスタンスの _statusBarRequestedStyle プロパティにウォッチポイントを設定すると、viewWillAppear メソッドと viewDidAppear メソッドの実行の間に UIApplicationMain から何らかの呼び出しが行われ、これが 0 (UIStatusBarStyleDefault) に設定されていることがわかりました。

この時点で、ステータス バーのスタイルが変更された理由がわかりません。同じことを経験したことがある場合は、アドバイスをいただければ幸いです。

前もって感謝します!

編集: iOS 7 UI 移行ガイド ( https://developer.apple.com/library/ios/documentation/userexperience/conceptual/TransitionGuide/Bars.html )から

iOS 7 では、個々のビュー コントローラーからステータス バーのスタイルを制御し、アプリの実行中に変更できます。この動作をオプトアウトし、UIApplication statusBarStyle メソッドを使用してステータス バーのスタイルを設定する場合は、UIViewControllerBasedStatusBarAppearance キーをアプリの Info.plist ファイルに追加し、値 NO を指定します。

4

3 に答える 3

8

オプション1:

1) アプリがビュー コントローラー ベースの場合、次のように app.plist ファイルを設定する必要があります。

 UIViewControllerBasedStatusBarAppearance=NO;

ここに画像の説明を入力

2) 各コントローラーでこのメソッドを設定する必要があります。

 -(UIStatusBarStyle)preferredStatusBarStyle
  {
      return UIStatusBarStyleLightContent;
  }

オプション 2:

アプリケーション didFinishLaunchingWithOptions: メソッドのAppDelegate.mファイルにこの 1 行を記述します。

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:YES];

役立つかもしれません。

于 2013-11-15T11:11:43.987 に答える
5

ビューコントローラーのステータスバーの外観に応じて、システムがステータスバーを更新していると思います。これは iOS7 の新しい動作であり、デフォルトでオンになっています。

ステータス バーの外観に以前の API を使用する場合は、アプリの info.plist でを設定UIViewControllerBasedStatusBarAppearanceする必要があります。NO

于 2013-11-15T11:09:10.183 に答える