0

SwiftUI を使用して、ビューを変更するためのMac アプリのサイドバー ナビゲーションを作成しました。サイドバーの項目をクリックすると、右側のビューが変わります。ただし、アプリを起動すると、サイドバーListは最初のクリックを登録しません。項目を選択するには 2 回のクリックが必要です。その後、サイドバーは正常に動作し、1 回クリックするだけでビューを変更できます。

でこの初期起動の問題を修正するにはどうすればよいListですか?

サイドバー ナビゲーション

import SwiftUI

struct DetailView: View {

    var selection: String

    var body: some View {
        containedView()
    }

    private func containedView() -> AnyView {
        switch selection {
        case " Apple":
            return AnyView(AppleView())
        case " Banana":
            return AnyView(BananaView())
        case " Coconut":
            return AnyView(CoconutView())
        default:
            return AnyView(Text("Some view here").frame(maxWidth: .infinity, maxHeight: .infinity))
        }
    }
}

struct SidebarView: View {

    let items = [" Apple", " Banana", " Coconut", " Cherry", " Peanut", " Peach", " Tomato", " Bread", " Pizza", " Broccoli", " Kiwi", " Cheese", " Watermelon"]

    var body: some View {
        List(items, id: \.self) { item in
            NavigationLink(destination: DetailView(selection: item)) {
                Text("\(item)")
            }
        }
        .listStyle(SidebarListStyle())
    }
}

struct ContentView: View {
    var body: some View {
        NavigationView {
            SidebarView()
            DetailView(selection: " Apple")
        }
        .frame(height: 300)
    }
}
4

1 に答える 1