본문 바로가기

iOS

View Controller에 대해 알아보자.

안녕하세요. ☁️ 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




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

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




'iOS' 카테고리의 다른 글

UIView의 ContentMode정리  (0) 2019.03.24
Mapkit이 Blank Screen 되었다.  (0) 2019.03.07
CocoaPods를 사용해보자.  (0) 2018.11.08
View Controller에 대해 알아보자.  (0) 2018.10.27
App LifeCycle에 대해 알아보자.  (0) 2018.10.25
CocoaTouch Framework란 무엇일까?  (0) 2018.10.23