Учебное пособие по Apple SwiftUI: сменить ListView на MapKit View? - PullRequest
0 голосов
/ 28 января 2020

Я закончил учебники SwiftUI от Apple для приложения Landmarks и хочу превратить ListView в представление карты. Он уже просматривает элементы списка на страницах с подробностями, и я хотел бы, чтобы эта функциональность осталась.

Вот код для LandmarkList.swift, который я хотел бы использовать в качестве карты с интерактивными точками вместо списка. Как бы я go об этом?

import SwiftUI

struct LandmarkList: View {
    @EnvironmentObject private var userData: UserData

    var body: some View {
        NavigationView {
            List {
                Toggle(isOn: $userData.showFavoritesOnly) {
                    Text("Show Favorites Only")
                }

                ForEach(userData.landmarks) { landmark in
                    if !self.userData.showFavoritesOnly || landmark.isFavorite {
                        NavigationLink(
                            destination: LandmarkDetail(landmark: landmark)
                                .environmentObject(self.userData)
                        ) {
                            LandmarkRow(landmark: landmark)
                        }
                    }
                }
            }
            .navigationBarTitle(Text("Chargers"))
        }
    }
}

struct LandmarksList_Previews: PreviewProvider {
    static var previews: some View {
        ForEach(["iPhone SE", "iPhone XS Max"], id: \.self) { deviceName in
            LandmarkList()
                .previewDevice(PreviewDevice(rawValue: deviceName))
                .previewDisplayName(deviceName)
        }
        .environmentObject(UserData())
    }
}
...