Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 自定义UINavigationController标题不为';不显示在子视图中_Ios_Swift_Swift3_Uinavigationcontroller_Uinavigationbar - Fatal编程技术网

Ios 自定义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

我已经创建了一个自定义的UINavigationController类来轻松设置应用程序导航栏的样式

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"