我的应用程序目前包含两个视图控制器VC1和VC2。
在VC1中是主屏幕,UINavigationBar
上有一个橙色渐变图片。
在VC2中有半透明的UINavigationBar
,并在UINavigationBar
上设置了UIImage。
但当在这两个视图控制器之间导航时,会出现黑色导航栏,直到转换完成。我尝试设置setNavigationBarHidden
,但我不想隐藏导航栏,所以我该如何移除黑色导航栏?
就像这样-
在VC1中
override func viewWillAppear(animated: Bool) {
if let navController = self.navigationController {
UIGraphicsBeginImageContext(gradientLayer.frame.size)
gradientLayer.renderInContext(UIGraphicsGetCurrentContext()!)
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
UIView.animateWithDuration(0.3, animations: {
navController.navigationBar.setBackgroundImage(image, forBarMetrics: .Default)
navController.navigationBar.translucent = false
})
}
}
在VC2中
override func viewWillAppear(animated: Bool) {
UIView.animateWithDuration(0.3, animations: {
self.navigationController?.navigationBar.setBackgroundImage(UIImage(), forBarMetrics: .Default)
self.navigationController?.navigationBar.shadowImage = UIImage()
self.navigationController?.navigationBar.translucent = true
})
}
override func viewWillDisappear(animated: Bool) {
if let navController = self.navigationController {
UIGraphicsBeginImageContext(gradientLayer.frame.size)
gradientLayer.renderInContext(UIGraphicsGetCurrentContext()!)
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
UIView.animateWithDuration(0.3, animations: {
navController.navigationBar.setBackgroundImage(image, forBarMetrics: .Default)
navController.navigationBar.translucent = false
})
}
}