使其变为透明后返回默认导航栏

时间:2016-07-12 09:18:45

标签: ios objective-c swift2 uinavigationbar

我的导航栏像这样透明:

override func viewWillAppear(animated: Bool) {

    self.navigationController!.navigationBar.setBackgroundImage(UIImage(), forBarMetrics: .Default)
    //UIImageNamed:@"transparent.png"
    self.navigationController!.navigationBar.shadowImage = UIImage()
    ////UIImageNamed:@"transparent.png"
    self.navigationController!.navigationBar.translucent = true
    self.navigationController!.view.backgroundColor = UIColor.clearColor()

}

但它影响其他视图控制器的导航栏也是如此,因为我想在当前视图消失时将其恢复为默认状态,我该怎么做? 我知道我必须在ViewDidDisappear中做,但不知道该做什么

任何指导都将不胜感激

2 个答案:

答案 0 :(得分:1)

好吧,我最终得到了这个,在我的另一个viewController,我想显示我的navigationBar

    override func viewDidAppear(animated: Bool) {

    self.navigationController?.navigationBar.translucent = true
    self.navigationController?.navigationBar.barStyle = .Default
    self.navigationController?.navigationBar.backgroundImageForBarMetrics(.Default)
    self.navigationController?.navigationBar.backgroundColor = .None
    self.navigationController?.navigationBar.setBackgroundImage(.None, forBarMetrics: .Default)


}

答案 1 :(得分:0)

您可以在viewWillDisAppear()方法中反向返回viewController颜色。

覆盖func viewWillDisAppear(动画:Bool){

self.navigationController!.view.backgroundColor = UIColor.WhiteColor()

}

希望这会对你有所帮助