デバイスが iPhone (iPad ではない) の場合にのみ表示されるツールバー ボタンのセットがあります。
次のコードは、このエラーで失敗します。
制御フロー ステートメントを含むクロージャーは、結果ビルダー 'ToolbarContentBuilder' では使用できません
失敗する理由は理解していますが、必要なものを実現するソリューションを思いつくことができません。
import SwiftUI
struct ContentView: View {
var body: some View {
NavigationView {
List {
NavigationLink(
destination: Hello(),
label: {
Text("Hello")
})
}
}
}
}
struct Hello: View {
var body: some View {
Text("Hello World")
.toolbar() {
if UIDevice.current.userInterfaceIdiom == .phone {
ToolbarItem(placement: .navigationBarTrailing) {
Button(action: {
// do something
}, label: {
Text("Button1")
})
}
ToolbarItem(placement: .navigationBarTrailing) {
Button(action: {
// do something
}, label: {
Text("Button2")
})
}
}
ToolbarItem(placement: .navigationBarTrailing) {
Button(action: {
// do something
}, label: {
Text("Button3")
})
}
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
それを達成するための別の関数を作成できてうれしいです。私は単にそれを行う方法を理解できません。