매주 진행하는 면접스터디에서 아래의 질문들에 대한 정리를 모은 글입니다.
Interview_Question_for_Beginner/iOS
iOS ) View Controller의 생명주기(Life-Cycle)
앱은 하나 이상의 뷰로 구성되어 있으며, 각각의 뷰는 라이프 사이클을 가지고 있다. 순환적으로 발생하기 때문에 화면 전환에 따라 로직을 적절한 곳에서 실행시켜야 한다.
컨트롤러가 관리하는 뷰를 만드는 역할을 한다. 뷰를 만들고 메모리에 올린다. 이후 viewDidLoad가 호출된다.
이 메서드를 직접 호출하면 안된다.
ViewController가 메모리에 로드된 후 호출된다. 특별한 경우가 아니라면 딱 한번 실행되기 때문에 초기화할 때 사용할 수 있다.
뷰가 생성되기 직전에 실행된다. 뷰가 나타나기 전에 실행해야 하는 작업들을 여기서 한다.
또는 네비게이션 컨트롤러에서 다른뷰에 갔다가 다시 돌아오는 상황에 해주고 싶은 로직을 위치시킨다. A뷰에서 B뷰에 갔다가 다시 A뷰로 이동하는 경우 A뷰는 이미 메모리에 로드되었기 때문에 viewDidLoad는 호출되지 않고, viewWillAppear가 호출된다.
뷰가 생성된 후 실행된다. 데이터를 받아서 화면에 뿌려주거나 애니메이션 등의 작업을 하는 로직을 위치시킬 수 있다. viewWillAppear에서 로직을 넣었다가 뷰에 반영이 안되는 경우가 있기 때문이다.
뷰가 사라지기 직전에 실행된다.
뷰가 사라진 후 실행된다.
메모리에서 해제될 때 실행된다.