개발/iOS

[Swift] whose view is not in the window hierarchy 오류

Dallaenae 2021. 11. 23. 18:48

뷰컨트롤러 팝업을 띄우려고 코드작성를 작성하고 빌드했는데 문제는 없었다.

하지만 정상적으로 팝업이 뜨지 않고 "whose view is not in the window hierarchy" 오류 메시지가 찍혔다.

 

팝업 호출 구문을 viewDidLoad() 안에 사용하여 발생하는 문제로 확인되었다.

뷰컨트롤러를 메모리에 로드한 후 호출되는 메소드인데 아직 완료되지 않았는데 새로운 뷰컨트롤러를 올렸기 때문에 뷰계층에 문제가 발생한 것이다.

 

문제를 해결하기 위해서 viewDidLoad() 가 완료된 후 다른 액션시 발생하는 곳에서 호출을 하거나

viewDidAppear() 메소드를 사용하여 그 안에서 호출하면 문제없이 뷰계층을 이룰 수 있다.

 

    override func viewDidAppear(_ animated: Bool) {

        showPopUp()

    }

    

    override func viewDidLoad() {

        super.viewDidLoad()

        

        //showPopUp()

    }

반응형