[英]White status bar disappears when Navigation bar is visible with Tint Color in iOS 7
我有2個UIViewControllers
。 在第一個UIViewController
,比如說ViewController1
,我保持隱藏UINavigationBar
。 由於我的應用程序的主題是黑色的,所以我需要iOS 7
白色UIStatusBar
,以便它在黑色UINavigationBar
中不會變得不可見。 為了獲得白色UIStatusBar
我在iOS 7
使用此方法。
plist
中將UIViewControllerBasedStatusBarAppearance
設置為YES
viewDidLoad
做一個[self setNeedsStatusBarAppearanceUpdate];
添加以下方法:
-(UIStatusBarStyle)preferredStatusBarStyle{ return UIStatusBarStyleLightContent; }
我在ViewController1中時工作正常。 但是當我移動到ViewController2時,如果我設置了
self.navigationController.navigationBarHidden = NO
在我的viewDidLoad
方法中。 然后上面的白色UIStatusBar
代碼不起作用。 UIStatusBar
變黑了,我看不到它,因為我使用以下代碼來自定義我的UINavigationBar
self.navigationController.navigationBar.barTintColor = [UIColor blackColor];
self.navigationController.navigationBar.tintColor = [UIColor whiteColor];
self.navigationController.navigationBar.titleTextAttributes = [NSDictionary dictionaryWithObject:[UIColor whiteColor] forKey:UITextAttributeTextColor];
self.navigationController.navigationBar.translucent = NO;
如果我保持UINavigationBar
像ViewController1一樣隱藏,那么白色UIStatusBar
再次可見。 但是當UINavigationBar
可見時,狀態欄再次變為黑色。 那就是問題所在。
任何人都可以在這種情況下幫助我,我怎樣才能得到像我的ViewController1一樣的白色狀態欄? 提前致謝。
您是否嘗試將此添加到兩個視圖控制器
-(UIStatusBarStyle)preferredStatusBarStyle{
return UIStatusBarStyleLightContent;
}
您可能只是缺少plist所需的屬性:將基於控制器的狀態欄外觀視為NO。
編輯 :檢查@caglar對先前答案的評論,以獲得更全面的答案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.