unggu0704 / naju-busInfo

나주시 버스정보 어플 개발을 위한 저장소입니다.
https://apps.apple.com/kr/app/나주시-버스/id6459411077
MIT License
0 stars 0 forks source link

버스 현재 위치 보는 기능의 오류 #1

Closed unggu0704 closed 1 year ago

unggu0704 commented 1 year ago

하나의 정류장에서 searchResultView -> _LineinfoView_로 이동 후 다른 searchResultView -> LineinfoView 로 이동할 시에 이동이 안되는 버그 발견

unggu0704 commented 1 year ago

Main View -> searchBus -> searchResultView --> LineinfoView
메인화면 -> 정류장 검색 -> 버스 정류장 정보 출력 --> 노선 정보 출력

정상 작동을 확인함

Main View -> _searchResultView__ --> LineinfoView
즐겨찾기 -> 버스 정류 장정보 출력--> 노선 정보 출력

오류 발생

wishList를 활용한 정류장 정보 View를 생성시에 노선 정보 출력 쪽에 문제가 있다고 판단...

예상 문제

추측1. View 매개변수 전달과 @Binding 방식의 문제

추측2. NavigationLink의 사용 방법의 잘못됨

추측3. 변경되는 값이 없어서 View의 재 생성이 안됨

unggu0704 commented 1 year ago

23/08/03 해결

추측2 의 binding방식의 문제로 판명 해당 문제의 코드를 수정

if let nextNmae = wishItem.nextBusStop { NavigationLink(destination: busInfoResult(busStopName: Binding.constant(name), busStopID: Binding.constant(Int(wishItem.busStopID)), nextBusStop: Binding.constant(nextNmae))) {

아래와 같이 변경

if let nextName = wishItem.nextBusStop { NavigationLink(destination: busInfoResult(busStopName: name, busStopID: Int(wishItem.busStopID), nextBusStop: nextName)) {

Binding.constant를 삭제함

Binding.constant로 인해 busInfoResult.swift 내에서 다른 정류장의 View를 사용할때 값들이 name, busStopID, nextBusStop 변수들은 계속해서 사용중에 변경 될수 있음으로 Binding.constant를 삭제하고 일반적인 변수의 형태로 매개변수를 전달하는 방식으로 변경

추가적으로 그에 맞게 다른 코드들도 수정완료.