こんな感じです:
↓Backボタンを表示するために NavigationLink 先を preview しています
import SwiftUI
struct LargeTitleView: View {
init() {
UINavigationBar.appearance().backgroundColor = .blue // 背景色
UINavigationBar.appearance().largeTitleTextAttributes = [ .foregroundColor: UIColor.white] // タイトル色
UINavigationBar.appearance().tintColor = .white // backボタン色
}
var body: some View {
VStack {
Text("Hello, world!")
.navigationTitle("title")
}
}
}
struct InlineTitleView: View {
init() {
UINavigationBar.appearance().barTintColor = UIColor.blue // 背景色
UINavigationBar.appearance().titleTextAttributes = [ .foregroundColor: UIColor.white] // タイトル色
UINavigationBar.appearance().tintColor = .white // backボタン色
}
var body: some View {
VStack {
Text("Hello, world!")
.navigationTitle("title")
.navigationBarTitleDisplayMode(.inline)
}
}
}
struct TitleView_Previews: PreviewProvider {
static var previews: some View {
Group {
NavigationView {
NavigationLink(destination: LargeTitleView(), isActive: .constant(true)) { EmptyView() }
}
NavigationView {
NavigationLink(destination: InlineTitleView(), isActive: .constant(true)) { EmptyView() }
}
}
}
}
バージョン
Swift 5.4