NavigationViewController에서 원하는 뷰로 pop하기(popToViewController)

Doogie·2023년 3월 9일
0

프로젝트에서 아이디/비밀번호 찾기를 구현중인데 인증 문자를 보낸 뒤 5분이 경과하면 이전화면인 로그인화면이 아니라 전전 화면인 메인 화면으로 이동을 해야했다

처음에는 pop을 두번을 했으나 화면이 뒤로 넘어가는게 두번이나 보여 좀 민망허기두 하고... 암튼 그런 기능이 없을리가 없어서 찾아본 결과...
navigationViewController에 popToViewController라는 메서드가 있었다

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)
        }
    }
profile
끊임없이 문을 여는 개발자

0개의 댓글