UINavigationBar显示为半透明而不是不透明的白色

Mas*_*iti 11 ios ios7

这是我正在从iOS 6转换的应用程序.最初,ViewController在iOS 7下显示,导航栏下方的主视图内容.

在UI构建器视图中,我关闭了"Extend Edges"部分中的"Under Top Bars"和"Under Bottom Bars",以解决该问题.但是,现在在这个屏幕上,导航栏看起来是半透明的(在下面的屏幕截图中显示为灰色).

我已经尝试在"模拟指标"下明确地将"顶栏"设置为"不透明导航栏",但这没有任何效果.

我试过设置:

self.navigationController.navigationBar.translucent = NO;
Run Code Online (Sandbox Code Playgroud)

在我的ViewController的init代码中,但这也没有任何效果.

我错过了什么?

更新:如果我self.navigationController.navigationBar.translucent = NO;在堆栈中的第一个ViewController中设置它,它可以工作.但是,在有问题的ViewController之前,我确实需要半透明的导航栏.只有当我到达一个深层的视图时,我才想要一个非半透明的条形图(这个视图没有可滚动的数据,所以让它半透明是没有意义的).

这是我在导航栏中看到的屏幕截图:

到目前为止,尝试使条形白色不透明在iOS 7中失败了...

Mas*_*iti 20

问题是我在打电话

self.navigationController.navigationBar.translucent = NO;
Run Code Online (Sandbox Code Playgroud)

在我的观点出现后.我将该代码移动到我的viewWillAppear方法中,现在它显示正确:

正确


Hin*_*ndu 5

您可以尝试以下代码......

self.navigationController.navigationBar.barTintColor = [UIColor redColor];
self.navigationController.navigationBar.translucent = NO;  
Run Code Online (Sandbox Code Playgroud)

并在View viewDidLayoutSubviews函数中添加此代码...


The*_*imp 5

您可以使用以下应用程序在全面设置:

UINavigationBar.appearance().navigationBarAppearace.translucent = false
Run Code Online (Sandbox Code Playgroud)

当应用程序最初加载时,我倾向于在我的AppDelegate类中执行此操作.