SwiftUI изменить цвет заголовка навигации только для текущего вида - PullRequest
1 голос
/ 09 ноября 2019

Я знаю, что могу глобально изменить панель навигации, используя init:

init() {
    UINavigationBar.appearance().largeTitleTextAttributes = [
        .foregroundColor: UIColor.red
    ]
}

Как бы я сделал это только для текущего вида? Я хочу установить цвет заголовка навигации только для текущего представления, а не для всех представлений приложения.

1 Ответ

0 голосов
/ 09 ноября 2019

Простейший случай выглядит следующим образом (вы также можете сохранить / восстановить предыдущие настройки в некоторых локальных переменных):

var body: some View {
    NavigationView(){
        List {
            // Some content is here
        }
        .navigationBarTitle("Title")
        .onAppear(perform: {
            UINavigationBar.appearance().largeTitleTextAttributes = [
                .foregroundColor: UIColor.red
            ]
        })
        .onDisappear(perform: {
            UINavigationBar.appearance().largeTitleTextAttributes = nil
        })

    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...