Ios 自定义UINavigationController标题不为';不显示在子视图中
我已经创建了一个自定义的UINavigationController类来轻松设置应用程序导航栏的样式Ios 自定义UINavigationController标题不为';不显示在子视图中,ios,swift,swift3,uinavigationcontroller,uinavigationbar,Ios,Swift,Swift3,Uinavigationcontroller,Uinavigationbar,我已经创建了一个自定义的UINavigationController类来轻松设置应用程序导航栏的样式 class NavigationController: UINavigationController { override func viewDidLoad() { super.viewDidLoad() configureNavigationBar() } } extension NavigationController { func
class NavigationController: UINavigationController {
override func viewDidLoad() {
super.viewDidLoad()
configureNavigationBar()
}
}
extension NavigationController {
func configureNavigationBar() {
navigationBar.tintColor = UIColor.white
navigationBar.backgroundColor = UIColor.clear
navigationBar.isTranslucent = false
navigationBar.barStyle = .black
navigationBar.setBackgroundImage(UIImage(), for: .default)
navigationBar.shadowImage = UIImage()
let attributes = [NSForegroundColorAttributeName: UIColor.white, NSFontAttributeName: UIFont(name: "Merriweather-Bold", size:17)!]
navigationBar.titleTextAttributes = attributes
let gradientLayer = CAGradientLayer()
let topColor:UIColor = UIColor(hex: 0xf91e4e)
let bottomColor:UIColor = UIColor(hex: 0xcc4d7f)
gradientLayer.colors = [bottomColor.cgColor, topColor.cgColor]
gradientLayer.startPoint = CGPoint(x: 0.0, y: 1.0)
gradientLayer.endPoint = CGPoint(x: 1.0, y: 0.0)
gradientLayer.frame = CGRect(x: 0, y: -20, width: navigationBar.frame.size.width, height: navigationBar.frame.size.height + 20)
navigationBar.layer.insertSublayer(gradientLayer, at: 0)
UIApplication.shared.statusBarStyle = .lightContent
}
}
它在根视图控制器中非常有效
但导航栏的标题并没有显示在VC的详细信息中
到目前为止,我已经尝试过这些解决方案,但都没有成功
navigationItem.title = "Test"
2:
3:
4:
navigationController?.navigationItem.title = "TEST"
是否尝试在详细视图控制器中设置标题?在希望显示标题的控制器中,必须使用此
navigationItem.title=“TEST”
Yes@jonathanffdfd如果删除已添加到导航栏的渐变层,它是否工作?您不应该干扰视图(或层)UIKit视图的层次结构,如导航栏。最安全的解决方案是制作渐变层的图像,并将其用作导航栏的背景图像。
navigationController?.navigationBar.topItem?.title = "TEST" // This changes first viewController’s title
navigationController?.navigationItem.title = "TEST"