IOS

[IOS / Swift] viewDidLoad, viewWillAppear

hyukji 2022. 12. 15. 01:20

 

코드를 작성하다가 문뜩 viewDidLoad, viewWillAppear 둘의 차이가 궁금했다. viewDidLoad, viewWillAppear 둘다 화면 구성하기 전에 호출 되는 매서드인 것은 알지만 정확한 차이와 언제 어떤 함수를 사용해야 하는 지에 대해 찾아보았다.

 

 

 

viewDidLoad는 맨 처음 한 번만 불린다. 그래서 화면을 구성할 때 한번만 불려도 된다면 해당 매서드를 사용하면 된다. 즉 UILabel의 텍스트를 설정하는 것 같이 한 번만 불리면 되는 작업들을 이 매서드에서 수행하면 된다. viewDidLoad를 사용할 때 주의할 점 또한 존재한다. 이 매서드는 아직 item들이 생성되기 전에 호출이 된다. 따라서 이 매서드에서 item들의 위치조정 같은 작동을 수행한다면 예상치 못한 버그가 발생 할 수도 있다.

 

반대로 viewWillAppear해당 화면이 나타날 때마다 호출된다. 따라서 매번 데이터가 바뀐다던가, 업데이트가 필요하다면 해당 매서드를 활용하면 되겠다. 

 

 

마지막으로 해당 매서드들에 오랜 시간이 걸릴 경우 앱이 화면을 보여주지 못하고 일시적으로 중지된다. 따라서 서버에서 대규모 데이터를 로드하는 것 같은 오랜 시간이 걸리는 작업이 필요하다면 그 시간동안 대기 화면을 보여주는 것도 하나의 방법이다.

 

 

 

 

결론:

viewDidLoad: 한 번만 처리하면 될 때 사용한다.
viewWilLAppear: 페이지가 로드 될때마다 바꿔주어야 할때 사용한다.

 

 

 

 

 

 

 

출처 : https://stackoverflow.com/questions/1579550/uiviewcontroller-viewdidload-vs-viewwillappear-what-is-the-proper-division-of