web-dev-qa-db-fra.com

Comment changer la police .navigationBarTitle dans SwiftUI?

J'utilise SwiftUI avec Xcode 11 et je veux changer la police NavigationBarTitle avec ces lignes de codes:

.navigationBarTitle (Text("Navigation Bar Title"), displayMode: .inline)
    .font(.subheadline)

mais rien ne s'est passé. une suggestion ou un commentaire?

6
Sajjad

Je pense que vous devez créer un NavigationBarBuilder.

struct NavigationBarBuilder: UIViewControllerRepresentable {

    var build: (UINavigationController) -> Void = { _ in }

    func makeUIViewController(context: UIViewControllerRepresentableContext<NavigationBarBuilder>) -> UIViewController {

        UIViewController()
    }

    func updateUIViewController(_ uiViewController: UIViewController, context: UIViewControllerRepresentableContext<NavigationBarBuilder>) {

        if let navigationController = uiViewController.navigationController{
            self.build(navigationController)
        }
    }
}

et vous pouvez l'utiliser dans votre affichage de contenu.

struct ContentView: View {
    var body: some View {
        NavigationView {
            Text("")
                .navigationBarTitle("Türkiye", displayMode: .inline)
                .background(NavigationBarBuilder {navigationController in
                    navigationController.navigationBar.barTintColor = .red
                    navigationController.navigationBar.titleTextAttributes = [.foregroundColor: UIColor.white]
                })
        }
        .navigationViewStyle(StackNavigationViewStyle())
    }
}

Bonne chance...

2
Erkam KUCET