[SwiftUI] NavigationBar의 배경색을 변경하는 방법

6441 단어 SwiftSwiftUI
이런 느낌입니다 :




inline


↓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

좋은 웹페이지 즐겨찾기