시범사업 개발 중에 이벤트 팝업 부분이 추가 되어 이벤트 팝업 부분을 추가하던중
팝업뷰를 띄우는데 이슈가 생겼다.
네비세이션 스택이 꼬여서 그런것 같은데 기존에 메인페이지에서 사용하던 팝업뷰 띄우는 로직으로 사용하니
팝업뷰를 띄운다음 종료할때 문제가 되었다
기존 코드는
//팝업뷰 띄우기
self.navigationController?.addChild(vc)
self.navigationController?.view.addSubview(vc.view)
//팝업뷰 에서 화면종료
self.removeFromParent()
self.view.removeFromSuperview()
네비게이션에 자식뷰로 스택을 쌓고 뷰를 표출해주는 방식이었는데
커스텀 네비게이션을 쓰다보니 여러 화면이 다양한 방식으로 짜집기된 상황에서 팝업뷰를 종료하면 기존에 쌓여있던 뷰도 싹 날아가는 모양새로 보였다.
그래서 모달 방식으로 뷰를 띄워주는 걸로 방식을 변경
//모달 방식으로 팝업뷰 띄워주기
vc.modalPresentationStyle = .overCurrentContext
self.present(vc, animated: false)
//팝업뷰 종료
self.dismiss(animated: false, completion: nil)
이 코드로 팝업뷰를 띄워 주는 것으로 변경하였다.
모달의 주요 특징