Изменить текст заголовка панели навигации на пользовательский цвет?

#ios #swift #swiftui #uikit

#iOS #swift #swiftui #uikit

Вопрос:

Я пытаюсь изменить текст строки заголовка на пользовательский оттенок лаванды с помощью следующего кода в моем AppDelegate

 func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    // Override point for customization after application launch.
    UINavigationBar.appearance().titleTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor(red: 0.9069682956, green: 0.7839415669, blue: 0.9612388015, alpha: 1)]

    return true
}
  

Однако текст строки заголовка по-прежнему отображается черным. Есть ли лучший способ изменить это?

Ответ №1:

Возможно, еще слишком рано, попробуйте добавить в init of ContentView , а также добавить некоторые для большого заголовка (который используется по умолчанию для SwiftUI NavigationView), например

 struct ContentView: View {

    init() {
        UINavigationBar.appearance().titleTextAttributes = 
            [NSAttributedString.Key.foregroundColor: 
               UIColor(red: 0.9069682956, green: 0.7839415669, blue: 0.9612388015, alpha: 1)]
        UINavigationBar.appearance().largeTitleTextAttributes = 
            [NSAttributedString.Key.foregroundColor: 
               UIColor(red: 0.9069682956, green: 0.7839415669, blue: 0.9612388015, alpha: 1)]
    }

    // ... other code with NavigationView here
}
  

Протестировано с Xcode 12.1 / iOS 14.1