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")
        }
    }
}


以上是SwiftUI将@ToolbarContent提取到它自己的var的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>