SwiftUI将@ToolbarContent提取到它自己的var
是否可以像使用一样在单独的 var 中提取工具栏内容@ViewBuilder
?
我想提取它并设置 .toolBar(content: myToolBarContent)
var body: some View {
NavigationView {
List {
}
.toolbar(content: {
ToolbarItem(placement: .principal) {
Text("Hi")
}
ToolbarItem(placement: .navigationBarTrailing) {
Text("Ho")
}
})
}
}
回答
您实际上不需要创建另一个结构 - 相反,您可以使用@ToolbarContentBuilder
. 它@ViewBuilder
相当于ToolbarContent
:
struct ContentView: View {
var body: some View {
NavigationView {
List {}
.toolbar(content: myToolBarContent)
}
}
@ToolbarContentBuilder
func myToolBarContent() -> some ToolbarContent {
ToolbarItem(placement: .principal) {
Text("Hi")
}
ToolbarItem(placement: .navigationBarTrailing) {
Text("Ho")
}
}
}