[SwiftUI macOS 앱] NvigationView List에서 초기 값 설정
해설
포인트는 NavigationLink를 사용하지 않는 곳입니다. 대신 selection:
를 사용합니다.
코드
ContentView.swiftimport SwiftUI
struct Person: Identifiable, Hashable {
var name: String
var id = UUID()
}
var persons = [
Person(name: "taro"),
Person(name: "yuki"),
Person(name: "hoge")
]
struct ContentView: View {
@State private var selectedPerson: Person? = persons[0]
var body: some View {
NavigationView {
List(persons, id: \.self, selection: $selectedPerson) { person in
Text(person.name)
}.listStyle(SidebarListStyle())
if selectedPerson != nil {
Detail(person: selectedPerson!)
}
}.frame(maxWidth: .infinity, maxHeight: .infinity)
}
}
struct Detail: View {
var person: Person
var body: some View {
Text(person.name).frame(maxWidth: .infinity, maxHeight: .infinity)
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
Reference
이 문제에 관하여([SwiftUI macOS 앱] NvigationView List에서 초기 값 설정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/mochizukikotaro/items/691d43ca6edd0f542cbd
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
ContentView.swift
import SwiftUI
struct Person: Identifiable, Hashable {
var name: String
var id = UUID()
}
var persons = [
Person(name: "taro"),
Person(name: "yuki"),
Person(name: "hoge")
]
struct ContentView: View {
@State private var selectedPerson: Person? = persons[0]
var body: some View {
NavigationView {
List(persons, id: \.self, selection: $selectedPerson) { person in
Text(person.name)
}.listStyle(SidebarListStyle())
if selectedPerson != nil {
Detail(person: selectedPerson!)
}
}.frame(maxWidth: .infinity, maxHeight: .infinity)
}
}
struct Detail: View {
var person: Person
var body: some View {
Text(person.name).frame(maxWidth: .infinity, maxHeight: .infinity)
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
Reference
이 문제에 관하여([SwiftUI macOS 앱] NvigationView List에서 초기 값 설정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/mochizukikotaro/items/691d43ca6edd0f542cbd텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)