全局更改 UINavigationBar 背景使用外观代理不起作用

Global changes UINavigationBar background using appearance proxy not working

我正在尝试使用 UINavigationBarAppearance 更改我的应用程序中所有 UINavigationBar 的某些属性。我在 AppDelegate.swift 中的 application(_:didFinishLaunchingWithOptions:) 中调用以下函数:

func customizeAppearance() {

    let navBarAppearance = UINavigationBarAppearance()
    navBarAppearance.configureWithDefaultBackground()
    navBarAppearance.titleTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor.white]
    navBarAppearance.backgroundColor = UIColor.black

    UITabBar.appearance().backgroundColor = UIColor.black

    let tintColor = UIColor(red: 255/255.0, green: 238/255.0, blue: 136/255.0, alpha: 1.0)
    UITabBar.appearance().tintColor = tintColor

}

我希望这会改变标题文本的背景颜色和颜色,但是当我 运行 应用程序时,只有文本颜色发生变化(UITabBar 也是如此)。有什么建议吗?

您应该在您的 UINavigationController 中使用这个 UINavigationBarAppearance。如果你为 UINavigationController 使用全局外观,你应该使用 UINavigationBar.appearance() 而不是 UINavigationBarAppearance().