Xcode 11.4. Navigation's Title Color gone BLACK from storyboard Xcode 11.4. Navigation's Title Color gone BLACK from storyboard ios ios

Xcode 11.4. Navigation's Title Color gone BLACK from storyboard


This fixed it for me, using UINavigationBarAppearance instead, from: Customizing Your App’s Navigation Bar

if #available(iOS 13.0, *) {    let appearance = UINavigationBarAppearance()    appearance.configureWithOpaqueBackground()    appearance.backgroundColor = UIColor.black    appearance.titleTextAttributes = [.foregroundColor: UIColor.white] // With a red background, make the title more readable.    self.navigationBar.standardAppearance = appearance    self.navigationBar.scrollEdgeAppearance = appearance    self.navigationBar.compactAppearance = appearance // For iPhone small navigation bar in landscape.} else {    self.navigationBar.barTintColor = UIColor.black    self.navigationBar.tintColor = UIColor.white    self.navigationBar.titleTextAttributes = [.foregroundColor: UIColor.white]}

Note: I subclassed UINavigationController, and this was called from the override of viewWillAppear.

...or for AppDelegate, app-wide:

if #available(iOS 13.0, *) {    let appearance = UINavigationBarAppearance()    appearance.configureWithOpaqueBackground()    appearance.backgroundColor = UIColor.black    appearance.titleTextAttributes = [        NSAttributedStringKey.foregroundColor: UIColor.white    ]    let buttonAppearance = UIBarButtonItemAppearance()    buttonAppearance.normal.titleTextAttributes = [.foregroundColor: UIColor.white]    appearance.buttonAppearance = buttonAppearance    UINavigationBar.appearance().standardAppearance = appearance    UINavigationBar.appearance().scrollEdgeAppearance = appearance    UINavigationBar.appearance().compactAppearance = appearance    UIBarButtonItem.appearance().tintColor = UIColor.white} else {    UINavigationBar.appearance().barTintColor = UIColor.black    UINavigationBar.appearance().titleTextAttributes = [        NSAttributedStringKey.foregroundColor: UIColor.white    ]    UINavigationBar.appearance().tintColor = UIColor.white    UIBarButtonItem.appearance().tintColor = UIColor.white}

...for AppDelegate, app-wide, in Objective-C:

if (@available(iOS 13, *)) {    UINavigationBarAppearance *appearance = [[UINavigationBarAppearance alloc] init];    [appearance configureWithOpaqueBackground];    appearance.backgroundColor = UIColor.whiteColor;    appearance.titleTextAttributes = titleAttributes;    UIBarButtonItemAppearance *buttonAppearance = [[UIBarButtonItemAppearance alloc] init];    buttonAppearance.normal.titleTextAttributes = barButtonItemAttributes;    appearance.buttonAppearance = buttonAppearance;    UINavigationBar.appearance.standardAppearance = appearance;    UINavigationBar.appearance.scrollEdgeAppearance = appearance;    UINavigationBar.appearance.compactAppearance = appearance;    [[UINavigationBar appearance] setTintColor:UIColor.blackColor];} else {    [[UINavigationBar appearance] setBarTintColor:UIColor.whiteColor];    [[UINavigationBar appearance] setTintColor:UIColor.blackColor];    [[UINavigationBar appearance] setTranslucent:false];    [[UINavigationBar appearance] setTitleTextAttributes: titleAttributes];    [[UIBarButtonItem appearance] setTitleTextAttributes:barButtonItemAttributes forState:UIControlStateNormal];}


On the storyboard, for your Navigation Controller change the "Bar Tint" to its "Default" value, then on your code you can change it as you normally would.