2013-09-25 158 views
10

這是我從iOS 6轉換而來的應用程序。最初,ViewController在iOS 7中顯示,導航欄下方的主視圖的內容。UINavigationBar顯示爲半透明而不是不透明的白色

在UI構建器視圖中,我在「擴展邊」部分中關閉了「頂部條」和「底部條」,以解決該問題。然而,這個工作,現在在這個屏幕上導航欄似乎是半透明的(在下面的截圖中呈灰色)。

我試着在「模擬指標」下明確設置「頂部條」爲「不透明導航條」,但這沒有效果。

我試過設置:

self.navigationController.navigationBar.translucent = NO; 

在我的ViewController的初始化代碼,但是這也沒有任何影響。

我錯過了什麼?

更新:如果我在堆棧中的第一個ViewController中設置了self.navigationController.navigationBar.translucent = NO;,它可以工作。但是,在ViewController出現問題之前,我想想要半透明的導航欄。只有當我看到幾層深的視圖時,我纔想要一個非半透明的條(這個視圖沒有可滾動的數據,所以它沒有任何意義)。

這裏就是我看到在導航欄的截圖:

Attempt to make bar white opaque have failed thus far in iOS 7...

+0

http://stackoverflow.com/questions/18929864/how-do-i-change-the-navigation-bar-color-in-ios-7/18929980#18929980 – Rajneesh071

回答

19

的問題是,我打電話

self.navigationController.navigationBar.translucent = NO; 

我的看法出現了。我感動的是代碼爲我的viewWillAppear中的方法,而現在它正確顯示:

Correct

+1

調用它在'-viewDidLoad:'似乎也工作。 –

0

所有你需要的iOS6的做的是控制器的fullscreenlayout設置爲NO,然後將其推送到NavigationController

[controller setWantsFullScreenLayout:NO]; 
4

你可以試試下面的代碼...

self.navigationController.navigationBar.barTintColor = [UIColor redColor]; 
self.navigationController.navigationBar.translucent = NO; 

,並考慮viewDidLayoutSubviews功能添加該代碼...

4

你可以使用這個應用程序設置一刀切:

UINavigationBar.appearance().navigationBarAppearace.translucent = false 

我傾向於當應用程序最初加載了做我的AppDelegate類。

+0

我認爲這已經改成了'UINavigationBar.appearance()。translucent = false'現在 – FortuneFaded

+0

它已經在Swift 3中進一步變爲'isTranslucent'了。 –

相關問題