-
Swift - ViewController Lifecycle (생명주기) 02Swift 2019. 7. 8. 16:17
Swift의 ViewController Lifecycle (생명주기) 를 문서로 정리를 해보았는데 가장 중요한 것은 내 눈으로 직접 보는게 아닐까 싶다.
* 개념이 아직 안 잡혀있으면 다시 사진과 글을 보고오자
Swift - View Controller Life Cycle (생명주기)
앱은 View Controller 로 이루어져 있는데, 이 View Controller 가 여러개일 경우가 대부분 일것 이다. 이 각각의 View Controller 는 생명주기를 가지고 있는데 View Controller 에서는 생명주기는 화면에 보여졌..
tono18.tistory.com
직접 해보는 화면은 다음과 같다.
첫번째 화면(빨간색)에서 버튼을 누르면 두번째 화면(파란색)으로 화면이 전환되고,
다시 두번째 화면 (파란색) 버튼을 누르면 첫번째 화면(빨간색) 화면이 보이는 구조로 View Controller life cycle을 보자.
즉,
빨간화면 버튼클릭 -> 파란화면 등장 -> 파란화면 버튼클릭 -> 파란화면 사라지고 빨간화면 등장
1. viewDidLoad
빨간 색 화면의 버튼을 클릭하자 viewDidLoad() 의 브레이크 포인트에서 멈췄다.
계속 진행시키면 print("viewDidLoad") 의 명령대로 viewDidLoad가 찍혀있는 것을 볼 수있다.
현재 상태는 뷰의 컨트롤러가 메모리에 로드가 된 후이다.
2. viewWillAppear
viewWillAppear은 뷰 컨트롤러의 화면이 올라오고 난후 뷰가 화면에 나타나기 직전에 호출 된다.
따라서 아직 파란색 화면인 두번째 viewController가 올라오지 않은 상태에서 곧 뷰가 나타날거야 라고 알려주는 것이다.
print("viewWillAppear") 의 명령대로 viewWillAppear가 찍혀있는 것을 볼 수있다.
3. viewDidAppear
viewWillAppear을 지나면 바로 두번째 화면(파란색)이 올라오면서 viewDidAppear의 브레이크 포인트에 멈춰있다.
즉 view가 데이터와 함께 완전히 화면에 나타났다는 뜻이다.
print("viewDidAppear") 의 명령대로 viewDidAppear가 찍혀있는 것을 볼 수있다.
4. viewWillDisappear
이제 다시 첫번째 빨간색 화면으로 돌아가기 위해서 버튼을 클릭하면 viewWillDisappear의 브레이크 포인트에서 멈춘다.
곧 뷰가 사라질거야 라고알려주는 셈이다. 아직 사라지기 직전이기 때문에 파란색 화면이다.
print("viewWillDisappear") 의 명령대로 viewWillDisappear가 찍혀있는 것을 볼 수있다.
5. viewDidDisappear
이제 파란색 화면이었던 두번째 뷰 컨트롤러는 사라지고 빨간색 화면이 보이면서 브레이크 포인트인 viewDisappear에 멈췄다.
print("viewDidDisappear") 의 명령대로 viewDidDisappear가 찍혀있는 것을 볼 수있다.
이렇게 순서대로 잘 찍혀있는 것을 볼 수 있다.
확실히 직접 하나씩 확인을 하는게 가장 좋은 방법인것 같다.
* 마지막 간단 정리 *
1. viewDidLoad
뷰의 컨트롤러가 메모리에 로드된 상태.
viewController 생명주기에서 딱 한번 호출!
화면전환시에는 viewDidLoad가 아닌 viewWillAppear가 호출!2. viewWillAppear
뷰가 화면에 나타나기 직전에 호출
3. viewDidAppear
뷰가 화면에 나타난 후 호출
4. viewWillDisappear
화면전환 전이나 뷰 컨트롤러가 사라지기 직전에 호출
5.viewDidDisappear
뷰 컨트롤러가 사라진 후 호출
'Swift' 카테고리의 다른 글
Swift 로 iOS 앱 만들기 - 06 : 스위프트 키보드 내리기 / lazy var (376) 2019.07.14 Swift - viewDidLoad() 깔끔하게 쓰기 (0) 2019.07.13 Swift - View Controller Life Cycle (생명주기) (0) 2019.07.03 Swift 로 iOS 앱 만들기 - 05 : 코드로 view 생성하기 (Then 사용) (0) 2019.07.03 Swift 로 iOS 앱 만들기 - 04 : SnapKit 사용 / leading 과 trailing (1) 2019.07.02