我的 iOS 14 App 屏幕有以下设置:
import SwiftUI
import UIKit
struct MyNavigationView: View {
init() { // Color Settings
UINavigationBar.appearance().barTintColor = UIColor(named:"ToolbarBackgroundColor")
UINavigationBar.appearance().tintColor = UIColor(named: "ToolbarForegroundColor")
UINavigationBar.appearance().titleTextAttributes = [.foregroundColor: UIColor(named:"ToolbarForegroundColor")]
UIToolbar.appearance().barTintColor = UIColor(named:"ToolbarBackgroundColor")
UIToolbar.appearance().tintColor = UIColor(named: "ToolbarForegroundColor")
}
var body: some View {
NavigationView {
Text("Hello, SwiftUI 2.0 World!") // content
.navigationBarTitleDisplayMode(.inline)
.navigationTitle("MyApp") // navigation bar title
.toolbar(content: {
// navigation bar leading item
ToolbarItem(placement: .navigationBarLeading) {
Text("Hi!").foregroundColor(Color("ToolbarForegroundColor"))
}
// navigation bar trailing item
ToolbarItem(placement: .navigationBarTrailing) {
VStack(content: {
Text("up").foregroundColor(Color("ToolbarForegroundColor"))
Text("down").foregroundColor(Color("ToolbarForegroundColor"))
})
}
// toolbar at the bottom of the screen
ToolbarItemGroup(placement: .bottomBar) {
Button(action:{
print("home")
}) {
Image(systemName: "house.fill")
.renderingMode(.template)
.foregroundColor(Color("ToolbarForegroundColor"))
}
Spacer()
Button(action:{
print("pages")
}) {
Image(systemName: "square.grid.3x2")
.renderingMode(.template)
.foregroundColor(.white)
}
Spacer()
Button(action:{
print("like")
}) {
Image(systemName: "star.fill")
.renderingMode(.template)
.foregroundColor(.white)
}
Spacer()
Button(action:{
print("user")
}) {
Image(systemName: "person.fill")
.renderingMode(.template)
.foregroundColor(.white)
}
}
})
}
}
}
到目前为止它的工作原理......
但是我对该行有多个警告
UINavigationBar.appearance().titleTextAttributes = [.foregroundColor: UIColor(named:"ToolbarForegroundColor")]
如果我替换UIColor
为Color
likeUINavigationBar.appearance().titleTextAttributes = [.foregroundColor: Color("ToolbarForegroundColor")]
警告消失但我崩溃了......有什么问题?而且我也想摆脱导航栏标题......这可能吗?