# Untitled

UIKit - **쌓여있는 VC를 앱 사용성에 맞게 dismiss 시키고 특정 VC 보여주기**

- SceneDelegate의 scene 메서드 내부 구현처럼, 앱을 마치 처음 켠 것처럼 만들어버린다.

```javascript
@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 해주는게 좋을 수 있다.

For the site tree, see the [root Markdown](https://slashpage.com/hankyeol.md).
