첫번째 지도 화면의 위도경도 값을 -> 다음 지도 화면으로 넘겨주기
//잘못된 코드
@IBAction func confirmLocationTapped(_ sender: UIButton) {
let addSmokingAreaDataVC = AddSmokingAreaDataViewController()
let currentCenter = naverMapView.mapView.cameraPosition.target
addSmokingAreaDataVC.latitude = currentCenter.lat
addSmokingAreaDataVC.longitude = currentCenter.lng
guard let smokingVC = storyboard?.instantiateViewController(withIdentifier: "AddSADataVC") as? AddSmokingAreaDataViewController else {
print("SmokingArea 뷰컨 생성 실패")
return
}
smokingVC.modalPresentationStyle = .fullScreen
self.present(smokingVC, animated: true, completion: nil)
}
//개선 코드
@IBAction func confirmLocationTapped(_ sender: UIButton) {
guard let smokingVC = storyboard?.instantiateViewController(withIdentifier: "AddSADataVC") as? AddSmokingAreaDataViewController else {
print("SmokingArea 뷰컨 생성 실패")
return
}
let currentCenter = naverMapView.mapView.cameraPosition.target
smokingVC.latitude = currentCenter.lat
smokingVC.longitude = currentCenter.lng
smokingVC.modalPresentationStyle = .fullScreen
self.present(smokingVC, animated: true, completion: nil)
}
이미 smokingVC를 만들어놨기 때문에
smokingVC를 이용해서 lat, lng에 접근
-> 현재 위도경도 값을 전달함
전날 공부했던 화면 이동과데이터 전달 강의가 큰 도움이 되었다!
흡연 구역 최종 등록 시 첫화면으로 돌아가기
//기존 코드
self.showAlert(message: "새로운 흡연구역이 등록되었습니다!") {
let viewController = self.storyboard?.instantiateViewController(withIdentifier: "VC") as? ViewController
}
원래는 instantiateViewController를 사용해서 홈화면으로 돌아가기만 하고
데이터가 제대로 표시되지 않는 등 문제가 있었지만
//개선 코드
self.view.window?.rootViewController?.dismiss(animated: true, completion: nil)
// NotificationCenter로 ViewController에게 데이터 새로고침 요청
NotificationCenter.default.post(name: .smokingAreaAdded, object: nil)
}
이렇게 rootViewController로 돌아가게했더니 아주 잘 동작한다!
무럭무럭 자라고 있는 나의 데이터들,,,,히히
'iOS > 흡구오디' 카테고리의 다른 글
[흡95디] 내 코드 톺아보기 공부하기 - ViewController.swift (0) | 2025.02.20 |
---|---|
[흡구오디] 마커 터치 시 팝업으로 정보 표시해주기!를 하기 위한,,, (0) | 2025.02.14 |
[흡구오디] 새로운 흡연구역 추가 기능 구현하기 | 🙊 (0) | 2025.01.19 |
[흡구오디] 내가 만들고 싶은 앱을 설명해봐요 (1) | 2024.12.26 |
[앱 만들기] 지도 위에 버튼 올리기 (1) | 2024.12.26 |