iOS

View Controller에 대해 알아보자.

TaeJoongYoon 2018. 10. 27. 21:58

안녕하세요. ☁️ On the Swift의 윤태중입니다.


지난 시간에는 App의 LifeCycle에 대해 공부해보았습니다.

이번 시간에는 App의 화면에 해당하는 View Controller의 LifeCycle에 대해 공부해보도록 하겠습니다 :)

View Controller LifeCycle에 대해 알아보자.


여러분이 iOS App을 작동시키면 여러 화면을 보실 수가 있을텐데요.

로그인 화면, 회원가입 화면, 개인정보 설정 화면 등등...

View Controller가 바로 이 화면(View)를 담당하는 객체입니다!

그리고 App을 실행하면 화면이 바뀔때가 있을 텐데 (예를 들어 로그인할 때?)

이 때 View Controller들은 주어진 LifeCycle에 따라서 화면이 전환 됩니다.

(꼭 화면이 전환될때 만 LifeCycle이 적용되는 것이 아니라 하나의 예입니다!)
(LifeCycle은 말그대로 생명주기라서 ViewController의 한 흐름이라고 생각하시면 될 것 같아요!)

그럼 저번시간처럼 일단 큰 그림을 먼저 살펴보겠습니다!


[ViewController의 LifeCycle]



음... 크게는 Appearing / Appeared / Disappearing / Disappeared 4가지의 상태가 존재하고

각 상태들을 이동할 때 보이시는 함수들을 호출하는 구조입니다. (주황색 화살표)

하지만 이 그림만 보면 어디서부터 시작인지 모르겠죠...?

그래서 사실 viewDidLoad라는 함수가 하나 더 있습니다!

(Xcode를 켜고 새 프로젝트를 만들 때 항상 보이던 그 함수 맞습니다!)

그래서 5가지의 함수를 통해 ViewController의 LifeCycle에 맞춰서 코드를 작성할 수 있습니다 :)

그럼 각 함수를 살펴보도록 하겠습니다.




각 함수에 해당하는 작업들을 정리해 보았습니다!


LifeCycle에 맞춰 수행할 작업들은 해당 함수 내에서 수행한다면 딱 맞겠죠????ㅎㅎ


근데 여기서 주의하실 점이 있습니다.


viewDidLoad()와 viewWillAppear() 둘다 View가 나타나기 직전인데 어떤 차이점을 두고


작업을 수행해야 할까 고민하실 수도 있습니다!





위 사진을 보시면 약간 감이 오실겁니다!


(ViewController의 LifeCycle을 간단히 도식화 해놓은 순서도입니다)


viewDidLoad()는 처음 한번만 호출되어 초기화 함수를 작성하는 것이 올바르고


viewWillAppear()같은 경우 view가 사라졌다가 다시 그려질때도 호출되므로


이 상태에 맞는 코드를 작성하는게 올바를것 같습니다 :)


예를들어, A뷰 -> B뷰 push후 B뷰를 pop한다면 viewWillAppear()가 호출된답니다 👍



지난번에 공부했던 App LifeCycle과 ViewController LifeCycle은 기본중의 기본지식이므로


다시 공부하면서 글을 작성해 보았습니다!


잊어버리지 않게 프로젝트를 진행할 때 항상 이 LifeCycle을 생각하면서 코드를 작성해야겠습니다 :)


Reference


ViewController LifeCycle




아직 모르는 것이 많고 알아가는 과정입니다.

잘못된 것이 있다면 댓글로 남겨주신다면 감사하겠습니다! 😊