프로젝트에서 아이디/비밀번호 찾기를 구현중인데 인증 문자를 보낸 뒤 5분이 경과하면 이전화면인 로그인화면이 아니라 전전 화면인 메인 화면으로 이동을 해야했다
처음에는 pop을 두번을 했으나 화면이 뒤로 넘어가는게 두번이나 보여 좀 민망허기두 하고... 암튼 그런 기능이 없을리가 없어서 찾아본 결과...
navigationViewController에 popToViewController
라는 메서드가 있었다
popToViewController
는 navigationViewController에 쌓인 viewController중 특정한 곳으로 pop을 하고 그 사이의 vc들도 다 해제시키는 메서드인데
해당 메서드도 여러 방법으로 사용되나 나는 인덱스를 직접 입력해서 뒤로가는 건 좀 직관성도 떨어져 별로라고 생각해 현재 navigationViewController가 갖고 있는 뷰를 순회해 내가 원하는 뷰 컨트롤러와 매칭 되는 곳으로 이동 시키게 구현을 했다
코드는 아래와 같다
guard let controllers = owner.navigationController?.viewControllers else {
return
}
for vc in controllers {
if vc is FirstVC {
owner.navigationController?.popToViewController(vc, animated: true)
}
}