4

デバイスが 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()
    }
}

それを達成するための別の関数を作成できてうれしいです。私は単にそれを行う方法を理解できません。

4

1 に答える 1