簡體   English   中英

在iOS 7中使用Tint Color可以看到導航欄時,白色狀態欄消失

[英]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使用此方法。

  1. plist中將UIViewControllerBasedStatusBarAppearance設置為YES
  2. viewDidLoad做一個[self setNeedsStatusBarAppearanceUpdate];
  3. 添加以下方法:

     -(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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM