14

私は次の星座を持っています:

メインビュー(カスタムUIViewController、ナビゲーションコントローラーまたはナビゲーションバーなし)。ナビゲーションコントローラーに埋め込まれている2番目のテーブルビューコントローラーにモーダルにセグエするボタンが含まれています。

MainView->ナビゲーションコントローラー->TableView

MainViewではステータスバーは黒です(iOS 6では変更されません-ステータスバーがデフォルトに設定されている場合でも)TableViewControllerではステータスバーはデフォルトスタイル(iOS 5では灰色、iOS 6ではナビゲーションバーのために青色に着色)である必要があります。

iOS 5では、TableViewControllerの次のコード行によってこれは簡単でした。

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

iOS6でこれを実行すると注意が必要です。これどうやってするの?プロジェクトの概要とplistで可能なすべてのステータスバー設定を試しました(ここで説明されているように:https ://stackoverflow.com/a/12468689/1685971 )

また、ストーリーボードではすべてが正常に見えます。シミュレーターまたはデバイスでアプリを実行すると、外観が異なります。 ストーリーボード シミュレーター

4

3 に答える 3

6

この「ハック」を試してください。最初のViewControllerにナビゲーションバーを追加する必要があります。次に、2つの可能性があります。

1)ナビゲーションバーのアルファ値を0に設定します

また

2)バーのy位置を-43pxに設定します(ここを見てください:http://moduscreate.com/tinting-your-status-bar-in-ios6-and-phonegap/

編集:

適切な色を取得するには、非表示のUINavigationBarのtintColorを設定する必要があります。したがって、デフォルトでは黒に設定します。ボタンアクションでは、tintColorをnavigationController.navigationBar.tintColorに設定する必要があります。閉じるボタンを操作したら、[UIColorblackColor]に戻す必要があります。

于 2013-02-17T18:37:39.133 に答える
2

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

于 2012-09-29T05:13:56.600 に答える
0

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

このアプローチを試してください。1.メインビューにナビゲーションコントローラーを追加します。2.プロパティを非表示にyesに設定します。3. tableviewcontrollerを表示するときは、ナビゲーションバーのプロパティを非表示に[いいえ]に設定します

ナビゲーションコントローラー->barhidden = yes-> MainView-> bar hidden = no-> TableView

于 2012-10-01T01:29:37.827 に答える