TourApp (1)
이번엔 그냥 간단하게 관광지 소개 앱을 만들어 보려고 한다.
지금은 간단하게 하려고 하고 나중에 조금 더 발전 시킨다면 그때는
Grid를 사용해서 꾸미지 않을까나
List를 사용했고 기본적인것은 패스
이번엔 SwiftModel을 사용하지 않고 만들어 보려고 한다.
1
2
3
4
5
6
7
8
9
10
struct TourModel: Hashable {
var title: String
var image: String
func hash(into hasher: inout Hasher) {
hasher.combine(title)
}
}
SwiftModel을 사용할때는 class를 사용했어야해서 나도모르게 class로 만들었는데
Hashable 프로토콜이 NavigationDestination에서 필요하다는걸 알았다.
이렇게 에러가 떠버린다.
그래서 프로토콜을 적용했으나 model에서 에러가 발생.
생각을 해보다가 swiftmodel을 쓰지 않을것 같아 class에서 struct로 바꾸니 해결이 되었다.
NavigationLink 해결
NavigationDestination을 활용하여 클릭시 화면전환이 가능하게 하려고 했는데 되지 않았다.
NavigaionLink를 먼저 깔고 후에 List를 하니 안되는 것 같다.
이전에 만들었던 코드를 참고하니 List 안에 NavigaionLink가 있었다.
그래서 위치를 바꾸니 해결이 되었다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var body: some View {
NavigationStack {
Text("관광 고고")
List {
ForEach(tours, id: \.self) { tour in
NavigationLink(value: tour) {
CellView(title: tour.title, imageUrl: tour.imageUrl)
}
}
}
.navigationDestination(for: TourModel.self) { model in
DetailView(title: model.title)
}
}
}
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.