Xcode ios7/8透明导航栏

Xcode ios7/8透明导航栏,xcode,ios7,swift,ios8,Xcode,Ios7,Swift,Ios8,我知道答案是肯定的,但我有一些问题,我正在使用这个解决方案: 唯一的变化是,我在我的viewcontroller中使用了它,因此将self替换为navigationController 我的问题:导航栏是黑色的,不是透明的。我错过什么了吗 我将swift与xcode6.1和部署目标ios 7.1一起使用 提前谢谢你 编辑:(按要求编码) 问题是,在视图控制器中,顶部栏下的扩展被禁用。显示您的代码,您将self替换为navigationController的声明没有清楚地解释您是否使用了self.

我知道答案是肯定的,但我有一些问题,我正在使用这个解决方案:

唯一的变化是,我在我的viewcontroller中使用了它,因此将
self
替换为
navigationController

我的问题:导航栏是黑色的,不是透明的。我错过什么了吗

我将swift与xcode6.1和部署目标ios 7.1一起使用

提前谢谢你

编辑:(按要求编码)


问题是,在视图控制器中,顶部栏下的扩展被禁用。

显示您的代码,您将
self
替换为
navigationController的声明没有清楚地解释您是否使用了
self.navigationController
导航控制器
(前者正确)。
self.navigationController等于
导航控制器,我在
viewdiload()
中使用它,这是正确的,假设应用程序在展开可选
navigationController
时没有崩溃,您的视图控制器已经在导航控制器堆栈中,那么代码应该可以工作。在那里放置一个断点,以确保您实际使用的是这个VC类,并且代码已被执行。是的,我已经尝试过了,我的应用程序不会崩溃,代码也会执行(如果我删除它,导航栏会变回默认的白色半透明,如IB中所设置的那样)。不过,您的行代码在新项目中仍能正常工作,您可以在某个地方重新设置参数,或者存在一些不可预测的布局,您应该能够通过视图调试轻松检查后者(类似VC的
视图
被放置在导航栏下方,因此您可以通过导航栏查看基础视图或窗口背景)。如果您不熟悉视图调试,请尝试为可疑组件设置不同的颜色,看看会发生什么(如
UIApplication.sharedApplication().keyWindow?.backgroundColor=UIColor.redColor()
override func viewDidLoad() {
    super.viewDidLoad()
    //Transparent navigation bar
    navigationController!.navigationBar.translucent = true
    navigationController!.navigationBar.shadowImage = UIImage()
    navigationController!.navigationBar.setBackgroundImage(UIImage(), forBarMetrics: UIBarMetrics.Default)
    /////
    //other stuff
}