Post

UIKit - NavigationController 푸시 후에 스택 비우기

사이드 프로젝트를 개발하면서 로그인 후에 메인 화면으로 이동될 때 아래 화면처럼 backButton이 표시됨.

image

이 문제를 해결하기 위해서 아래 코드를 통해 로그인 성공 시 메인 화면으로 푸시하면서 스택을 초기화 시켜줌.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
authManager.login(email: email, password: password) { result in
  switch result{
    case .success(let response):
      guard let response = response else { return }
                  
      KeyChainUtil.create(key: Constants.ACCESS_TOKEN, data: response.accessToken)
      KeyChainUtil.create(key: Constants.REFRESH_TOKEN, data: response.refreshToken)
                  
      // UI 작업이기 때문에 Main Thread에서 실행
      DispatchQueue.main.async {
        // setViewControllers를 통해 Stack 초기화 후 push
        self.navigationController?.setViewControllers([HomeViewController()], animated: true)
      }
                  
    case .failure(let error):
      print("error : \(error)")
  }
}

결과

image

This post is licensed under CC BY 4.0 by the author.