반응형
토이 프로젝트 중 앱 실행 되고 시작화면에서 로그인 토큰이 유효하면 바로 다른 화면으로 전환되게 구현 중에
"whose view is not in the window hierarchy!" 에러가 발생 하였다.
1. 에러 발생
ViewDidLoad() User에 토큰을 검사한 뒤 유효하면 performSegue를 사용하여 화면 전환을 하게 작성 하였는데 여기서 에러가 발생 하였다.
2. ViewDidLoad()
ViewDidLoad 메소드는 화면이 처음 만들어 질 때 한번만 실행이되며 뷰의 로딩이 완료 되었을때 호출이 되는 메소드이다.
구글링을 해보니 이 시점에서는 아직 뷰 컨트롤러가 완성 되지 않은 상태라 한다.
즉 아직 뷰 컨트롤러가 완성이 되지 않았는데 다른 모달이나 Alert을 호출하게 되서 생기는 에러였던 것이다.
3. 해결 방법 : ViewDidAppear()
해결 방법은 간단 하였다. ViewDidAppear()에 기존 작성한 코드를 옮기면 된다
ViewDidAppear()은 뷰가 표시될 때마다 호출이 된다. 이 메소드가 호출 된 시점에는 뷰가 완성 된 상태라는 것이다.
4. 결론 : 생명주기
생명주기에 관련해서 좀 더 공부를 했다면 애초에 발생하지 않았을 에러 라고 생각이 든다.
결론은 공부하자
반응형