2016-11-21 3 views
1

私は提示されたビューコントローラを持っています。ただし、ステータスバーの色とナビゲーションバーの色は異なります。どのように私は彼らが同じ色であることを確認するのですか?Presented View Controllerステータスバーの色が異なります。デフォルトに変更するにはどうすればいいですか?

+0

は 'UIApplication.shared.statusBarStyle = UIStatusBarStyle.lightContentような何かを書きます'またはあなたのbarStyleが何であっても、あなたの提示されたView Controllerの' viewDidLoad'または 'viewWillAppear'に –

+0

' UデフォルトステータスバーのIApplication.shared.statusBarStyle = UIStatusBarStyle.default –

答えて

0

それが役立つならば、コードの下に試してみてください。

//newViewController is your ViewController 

newViewController.navigationBar.barStyle = self.navigationController.navigationBar.barStyle; 

[self presentViewController:newViewController animated:YES completion:nil]; 

また、あなたはナビゲーションコントローラを使用して制御したい場合:

は、次のように提示されているのViewControllerに現在のViewControllerと同じスタイルを設定します。ステータスバーを表示するコントローラごとに、UINavigationControllerをサブクラス化し、preferredStatusBarStyleを実装する必要があります。

- (UIStatusBarStyle)preferredStatusBarStyle 
{ 
    return self.topViewController.preferredStatusBarStyle; 
} 

OR

- (UIStatusBarStyle)preferredStatusBarStyle { 

    return UIStatusBarStyleLightContent; 
} 
+1

これはトリッキーな感謝をしました! –

0
override var preferredStatusBarStyle: UIStatusBarStyle { 
    return .lightContent 
} 

この機能は、お使いの提示ビューコントローラとを提示されているビューコントローラであることを確認してください。

0
//change the background of status bar 

UIView *addStatusBar = [[UIView alloc] init]; 
addStatusBar.frame = CGRectMake(0, 0, self.view.frame.size.width, 20); 
addStatusBar.backgroundColor = bgStatus; 
[self.view addSubview:addStatusBar]; 

//黒から白にステータスバーのテキストの色を変更

- (UIStatusBarStyle)preferredStatusBarStyle { 
    return UIStatusBarStyleLightContent; 
} 
関連する問題