2014-02-26 160 views
2

我無法弄清楚如何讓狀態欄在ios 7中使用我的導航欄的顏色。我將UINavigationControllerSWRevealController庫一起用於滑動菜單導航。ios 7狀態欄不繼承導航欄顏色

這是一個頁面的外觀現在:

enter image description here

我想要的狀態欄繼承導航欄的灰色。我怎樣才能做到這一點?

+0

結帳this.http://stackoverflow.com/questions/17678881/how-to-change-status-bar-text-color-in-ios-7 – Mohit

+0

是的,它被設置爲ios7 –

+0

嘗試設置navigationBar navController.navigationBar.barTintColor = [UIColor grayColor]; – iPatel

回答

2

您可以通過修改項目的Info.plist並設置「查看基於控制器的狀態欄外觀」爲NO

在AppDelegate中你必須

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent]; 

添加到AppDelegates didFinishLaunchingWithOptions方法。

希望它會適合你。

+0

試過這個,我仍然看到狀態欄顯示爲黑色 –

+0

好吧,然後嘗試手動設置它從.xib文件... – Irfan

+0

也訪問此鏈接可能會解決您的問題http ://www.doubleencore.com/2013/09/developers-guide-to-the-ios-7-status-bar/ – Irfan

1

製作自定義視圖並將導航欄的顏色設置爲該視圖,將此視圖置於狀態欄的位置,並將狀態欄的顏色更改爲透明。 快樂編碼

0
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0)?YES:NO) { 
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"newImage.png"] forBarMetrics:UIBarMetricsDefault]; 
} 
else 
{ 
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"previousImage.png"] forBarMetrics:UIBarMetricsDefault]; 
} 
2

在iOS 7導航欄中,圖像高度爲64像素。您需要創建兩個圖像,一個用於導航欄的iOS 7的64個像素高度,另一個爲iOS 6或更小的44個像素

高度

然後使用此代碼

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0)?YES:NO) { 
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"your 64 image"] forBarMetrics:UIBarMetricsDefault]; 
} 
else 
{ 
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"your 44 image"] forBarMetrics:UIBarMetricsDefault]; 
} 
+0

這是正確的答案。 –

0

設置導航欄的委託爲當前視圖控制器並將導航欄附加到頂部。

class ViewController: UIViewController, UINavigationBarDelegate { 

@IBOutlet weak var navigationBar: UINavigationBar! 

override func viewDidLoad() { 
    navigationBar.delegate = self 
} 

func positionForBar(bar: UIBarPositioning) -> UIBarPosition { 
    return .TopAttached 
}