[패스트캠퍼스] 30개 프로젝트로 배우는 iOS 앱 개발 with Swift 초격차 패키지 Online을 학습하면서 나오는 이론 내용과 공식 문서에서 필요한 내용을 발췌하여 정리한 글입니다.
Part2. Basic 2. LED 전광판 앱 만들기
보통 앱을 만들때 단일 스크린 위에서 여러개의 뷰 컨트롤러들로 화면전환이 가능전환 앱을 만든다.
앱이 복잡해질수록 컨트롤러들을 잘 관리해줘야하는데 알맞은 타이밍에 내가 원하는 코드를 작성하는 것이 중요하다.
이를 위해서 ViewController Life Cycle를 이해해야 한다.
ViewController Life Cycle
UIViewController의 객체에는 View 객체를 관리하는 메소드들이 정의되어있다.
이 메소드들은 각자 자신들이 불러져야 하는 타이밍일때 iOS 시스템에 의해 자동적으로 호출이 된다.
UIViewController의 하이클래스를 생성할 때 UIViewController 정의된 이 메소드들을 오버라이드하여 라이프사이클 상황에 맞게 적절한 로직들을 메소드에 추가할 수 있다.
시스템이 어떤 메소드를 언제 호출해야하는지 먼저 이해해야지만 그 시점에 잘 맞춰 UI의 변화나 데이터 변화를 잘 처리할 수 있다.
뷰가 보여지는 사항은 크게 4가지로 분류할 수 있다.
- Appearing: 뷰가 화면에 나타나는 중
- Appeard: 뷰가 화면에 나타나는게 완료 된 상태
- Disappearing: 뷰가 화면에서 사라지는 중
- Disappeared: 뷰가 화면에서 사라진 상태
ViewController Life Cycle Method
ViewDidLoad()
- 뷰 컨트롤러의 모든 뷰들이 메모리에 로드됐을 때 호출
- 메모리에 처음 로드될 때 한번만 호출
- 보통 딱 한번 호출될 행위들을 이 메소드 안에 정의 함
- 뷰와 관련된 추가적인 초기화 작업, 네트워크 호출과 같은 1회성 작업을 정의 함
viewWillAppear()
- 뷰가 뷰 계층에 추가되고, 화면에 보이기 직전에 매 번 호출
(다른 뷰로 갔다 돌아오면 재호출 된다는 의미)
- 다른 뷰로 이동했다가 돌아오면 재호출
- 뷰와 관련된 추가적인 초기화 작업
viewDidAppear()
- 뷰 컨트롤러의 뷰가 뷰 계층에 추가된 후 호출된다.
- 뷰를 나타날 때 필요한 추가 작업
- 애니메이션을 시작하는 작업
viewWillDisappear()
- 뷰 컨트롤러의 뷰가 뷰 계층에서 사라지기 전에 호출된다.
- 뷰가 생성된 뒤 작업한 내용을 되돌리는 작업
- 최종적으로 데이터를 저장하는 작업
viewDidDisappear()
- 뷰 컨트롤러의 뷰가 뷰 계층에서 사라진 뒤에 호출
- 뷰가 사라지는 것과 관련된 추가 작업