Sign In
한결
Status
Empty
Assignee
Empty
UIKit - 쌓여있는 VC를 앱 사용성에 맞게 dismiss 시키고 특정 VC 보여주기
SceneDelegate의 scene 메서드 내부 구현처럼, 앱을 마치 처음 켠 것처럼 만들어버린다.
@objc func logout() { // SceneDelegate 자체를 가져오는 느낌 let scene = UIApplication.shared.connectedScenes.first as? UIWindowScene let sceneDelegate = scene?.delegate as? SceneDelegate let window = sceneDelegate?.window window?.rootViewController = UINavigationController(rootViewController: SignInViewController()) window?.makeKeyAndVisible() }
SceneDelegate에 정의한 window 객체를 불러와서, 새롭게 띄우려고 하는 VC를 갈아끼우는 느낌으로 코드가 동작한다.
viewDidLoad가 다시 돌기 때문에, 앱 전체의 테마를 바꾼다던지 로그인 여부 자체를 변경하는 것 등을 관리할 때 이전에 쌓은 페이지들을 다 dismiss 해주는게 좋을 수 있다.
👍