mirror of
https://github.com/ivanvorobei/SwiftUI.git
synced 2026-03-31 14:33:39 +02:00
47 lines
1.3 KiB
Swift
Executable File
47 lines
1.3 KiB
Swift
Executable File
/*
|
||
See LICENSE folder for this sample’s licensing information.
|
||
|
||
Abstract:
|
||
A view showing a list of landmarks.
|
||
*/
|
||
|
||
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("Landmarks"), displayMode: .large)
|
||
}
|
||
}
|
||
}
|
||
|
||
#if DEBUG
|
||
struct LandmarksList_Previews: PreviewProvider {
|
||
static var previews: some View {
|
||
ForEach(["iPhone SE", "iPhone XS Max"].identified(by: \.self)) { deviceName in
|
||
LandmarkList()
|
||
.previewDevice(PreviewDevice(rawValue: deviceName))
|
||
.previewDisplayName(deviceName)
|
||
}
|
||
.environmentObject(UserData())
|
||
}
|
||
}
|
||
#endif
|