【发布时间】:2021-01-28 18:07:21
【问题描述】:
我的问题似乎很简单。但我只是花了几个小时寻找解决方案!
我只需要使状态栏的背景颜色符合我的UINavigationBar 背景颜色(本示例中为红色)。
我写了一个最小的代码示例来重现我的问题并帮助你给我一个解决方案......
TestApp.swift
import SwiftUI
@main
struct TestApp: App {
@Environment(\.scenePhase) private var phase
var body: some Scene {
WindowGroup {
ContentView()
}
.onChange(of: phase) { newPhase in
switch newPhase {
case .active:
UINavigationBar.appearance().backgroundColor = UIColor.red
break
default:
break
}
}
}
}
ContentView.swift
struct DetailView1: View {
var body: some View {
Text("Detail view 1")
}
}
struct ContentView: View {
@State private var isDisplayDetailView1 = true
var body: some View {
NavigationView {
List {
Section {
NavigationLink(destination: DetailView1(), isActive: $isDisplayDetailView1) {
Text("Go to detail view 1")
}
}
}
.navigationBarTitle("Menu")
.listStyle(GroupedListStyle())
DetailView1()
}
}
}
显然,我尝试将edgesIgnoringSafeArea(.top) 添加到我的NavigationView 视图(以及List 和DetailView1 之一,...),但它并没有改变任何东西...请帮帮我,我不明白问题出在哪里!
【问题讨论】:
标签: swiftui uinavigationbar statusbar swiftui-navigationview uinavigationbarappearance