基本的な実装
swif
import SwiftUI
struct ContentView: View {
init(){
//ナビゲーションバーの背景色の設定
UINavigationBar.appearance().barTintColor = .white
}
var body: some View {
NavigationView(){
VStack(){
NavigationLink(destination: ContentView()){
Text("ナビゲーションビュー")
}
}
.navigationBarTitle("ナビゲーション", displayMode: .inline)
}
}
}
もう一つの方法
swift
import SwiftUI
import UIKit
struct NavigationConfigurator: UIViewControllerRepresentable {
var configure: (UINavigationController) -> Void = { _ in }
func makeUIViewController(context: UIViewControllerRepresentableContext<NavigationConfigurator>) -> UIViewController {
UIViewController()
}
func updateUIViewController(_ uiViewController: UIViewController, context: UIViewControllerRepresentableContext<NavigationConfigurator>) {
if let nc = uiViewController.navigationController {
self.configure(nc)
}
}
}
struct ContentView: View {
var body: some View {
NavigationView {
Text("Don't use .appearance()!")
.navigationBarTitle("Try it!", displayMode: .inline)
.background(NavigationConfigurator { nc in
// UIKitでNavigationBarのスタイルを変更するのと同じ方法でOK
nc.navigationBar.barTintColor = .blue
nc.navigationBar.titleTextAttributes = [.foregroundColor : UIColor.white]
})
}
}
}