View Life Cycle, 뷰의 생명 주기

View Life Cycle

뷰가 가지는 상태와 상태가 변화하면서 부르는 메서드에 대해 찾아봤다.

 

뷰의 상태가 변화하면, 뷰 컨트롤러는 자동으로 자기가 가진 메서드를 부르면서 변화에 맞게 반응함!

예를 들어 viewIsAppearing(_:)을 통해 화면에 나타나는 뷰를 준비시킨다든지, viewWillDisappear(_:)로 현재 데이터나 현재 상태를 저장할 수 있다~

 

etc-image-0etc-image-1

위 이미지들이 뷰 생명주기를 가장 잘 나타낸 것 같은데

각각 상태가 변화할 때마다 불리는 메서드들이 잘 정리되어 있음!!

불리는 메서드들은 사실 말 그대로다.

우리말로 치면 이제곧나타날거임/이제나타남/사라짐 … 등등이 되었겠지..🥹 부럽다

  • viewDidLoad: 뷰 컨트롤러 클래스가 생성될 때 가장 먼저 실행됨. 딱 한 번 실행되기 때문에 초기화할 때 사용할 수 있다.
  • viewWillAppear: 뷰가 생성되기 직전에 항상 실행됨!!
  • viewIsAppearing: 뷰가 생성되면서 실행
  • viewDidAppear: 뷰가 생성된 후에 실행됨. 받은 데이터를 뿌리거나 애니메이션 등의 작업은 여기에서
  • viewWillDisappear: 뷰가 사라지기 직전에 실행
  • viewDidDisappear: 뷰가 사라진 뒤에 실행

데이터를 새로고침하거나 화면전환 애니메이션 등의 작업을 할 때, 적절한 위치에서 하기 위해 뷰 생명주기를 잘 알아야 한다!!

 

예를 들어 캘린더 앱이 있을 때, 새로 일정을 저장(pop-up으로)하고 캘린더로 돌아가기 했을 때

만약 새로고침 코드가 viewDidLoad에 있다면, 다시 꼈다 켜지 않는 이상 새로고침이 되지 않아 반영이 안 될 수 있다.

이건 코드 작성 해보면 바로 느낌을 알 수 있을 것!