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