VLC ( View Life Cycle )


앞서 포스팅했던 ALC 와 마찬가지로 사용자에게 직접적으로 보여지게 되는 뷰에도 생명주기가 있다.

싱글 뷰 로만 구현되어있는 앱은 없다고 보는게 맞을만큼 앱은 여러개의 뷰가 복합적으로 연결 및 표현되고 있다.

사용자에게 직접적으로 보여지게 되는 부분인만큼 ALC와 마찬가지로 생명주기는 꼭 이해가 필요한 부분이고 신경써서 구현해야하는 부분이다.



애플의 개발자가이드 에서는 크게 5부분으로 나눠 설명하고있다.




1. viewDidLoad()

뷰 컨트롤러 클래스가 만들어질때 실행된다.

뷰에 진입하면서 한번만 실행하기 때문에 보통 초기화 할때 사용한다.


2. viewWillAppear()

viewDidLoad() 가 호출된 후 뷰가 화면에 나타나기 직전에 실행된다.

viewDidLoad 와 달리 뷰가 화면에 나타나기 직전마다 실행되므로

앱에서 정보를 수정하는 작업이라던지 변경작업 후 다시 돌아오는 뷰에서 데이터를 갱신을 할때 사용하면 좋다.


3. viewDidAppear()

뷰가 화면에 나타난 직후에 실행된다.

viewWillAppear 와 마찬가지로 뷰가 나타난 직후마다 실행된다.

뷰의 변경이나 애니메이션표시를 할때 사용하면 좋다.


4. viewWillLayoutSubviews()

뷰의 bounds 가 변경되면 하위 뷰의 레이아웃이 변경되는 시점이 필요한데

그 작업이 진행되기 직전에 호출된다.


5. viewDidLayoutSubviews()

뷰의 하위뷰 레이아웃이 변경된 직후에 호출된다.


6. viewWillDisappear()

뷰가 화면에서 사라지기 직전에 실행된다.

뷰의 변경사항을 커밋하거나 상태 종료와 같은 정리 작업을 할때 사용하면 좋다.


7. viewDidDisappear()

뷰가 화면에서 사라진 직후에 실행된다.

최종적인 마무리작업을 할때 사용하면 좋다.


설명한 7가지의 함수중 상황에 따라 동작을 구현함으로써 사용자에게 보여주게될 화면을 부드럽고 깔끔하게 보여줄수 있다. 



'Swift' 카테고리의 다른 글

[Swift] 옵셔널 (Optional)  (7) 2018.06.01
[Swift] typealias  (0) 2018.05.28
[Swift] ALC ( App Life Cycle )  (0) 2017.11.08
[Swift] Thread  (0) 2017.11.07
[Swift] GCD (Grand Central Dispatch)  (1) 2017.11.07

+ Recent posts