[SwiftUI macOS 앱] NvigationView List에서 초기 값 설정

5463 단어 macosSwiftUI


해설



포인트는 NavigationLink를 사용하지 않는 곳입니다. 대신 selection: 를 사용합니다.

코드



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

좋은 웹페이지 즐겨찾기