Swift
swift lifecycle
taehyeki
2023. 1. 12. 20:31
viewDidLoad()
가장 처음에 이 것이 실행되는데 IBOutlet, IBAtction 등 뷰와 관련된 모든 것들이 이 시점에 연결된다.
이건 뷰가 만들어졌을 때 한번만 실행이 된다. ( 다른 것들은 몇번이고 실행될 수 있다. )
따라서 UI에 값을 넣을 때 이 부분에서 넣으면 실패하지 않는다.
->
viewWillApear()
이 것은 실제로 뷰가 화면이 그려지기 전에 동작한다. 그래서 이 때에는 아직 유저가 화면을 보지 못한다.
이 때에 우리가 UI컴포넌트를 숨기거나, 보여주거나 할 수 있는 가장 좋은 타이밍이다.
->
viewDidApear()
이제서야 뷰가 화면에 나타나 우리가 볼 수 있는 상태가 된다.
이때에는 카운트 다운을 한다던지, 애니메이션을 준다던지 유저가 발견할 수 있는걸 줄 수 있다.
->
viewWillDisappear()
뷰가 사라지기 전에 동작하는 것이다.
애니메이션을 중지 시킨다던지 UI컴포넌트에 변화를 주기에 좋다.
->
viewDidDisapear()
이미 뷰는 스크린에서 사라졌지만 아예 메모리가 지워지거나 한 상태는 아니다.
viewcontroller를 소스코드 상에서 오브젝트로 생성하더라도,
그게 화면에 그려진 것이 아니기 때문에 코드 상에 존재하는 UI컴포넌트에 접근하려고 하면 존재 하지 않기에
오류가 발생한다.