-
Notifications
You must be signed in to change notification settings - Fork 1
/
ConferenceList.swift
45 lines (39 loc) · 1.22 KB
/
ConferenceList.swift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
//
// ContentView.swift
// iOSConferences
//
// Created by George on 12/07/2022.
//
//
import SwiftUI
import Combine
struct ConferenceList: View {
/// Domain to work with (loading from JSON, for now)
@ObservedObject var conferences = AllConferences(domain: JsonDomain())
var body: some View {
NavigationView {
List($conferences.conferences, rowContent: conferenceRow)
.navigationBarTitle("Conferences")
}
}
private func conferenceRow(conference: Binding<Conference>) -> some View {
NavigationLink(destination: ConferenceDetails(conference: conference.wrappedValue)) {
VStack(alignment: .leading) {
Text(conference.name.wrappedValue).font(.headline)
Text(conference.location.wrappedValue).font(.subheadline)
}
}
}
}
class ConferenceList_Previews: PreviewProvider {
static var previews: some View {
ConferenceList()
}
#if DEBUG
@objc class func injected() {
let windowScene = UIApplication.shared.connectedScenes.first as? UIWindowScene
windowScene?.windows.first?.rootViewController =
UIHostingController(rootView: ConferenceList())
}
#endif
}