miniworld

[Swift] ViewController의 Life Cycle - 생명주기 본문

Swift/Swift

[Swift] ViewController의 Life Cycle - 생명주기

Dev_miniworld 2023. 8. 29. 23:25

안녕하세요~~ miniworld의 티스토리입니다!

 

오늘은 ViewController의 Life Cycle에 대해서 공부해보려고 해요!!

Life Cycle은 꼭 알아야 하는 내용이니까 천천히 해볼게요!

 

밑에 그림을 한번 봅시다!!

UIViewController의 객체에는 뷰 객체를 관리하는 메서드들이 정의되어 있는데요, 이 메서드들은 각자 자신들이 불려져야 할 타이밍에 자동으로 호출됩니다.

시스템이 어떤 메서드를 언제 호출해야 하는 지 이해해야지만 그 시점에 맞춰 UI의 변화나 데이터의 변화를 처리할 수 있어요

 

그럼 위의 그림에서 보이는 Appearing, Appeard, Disappearing, Disappeared는 무엇을 의미하는 걸까요?

Appearing : 뷰가 화면에 나타나는 중

Appeared: 뷰가 화면에 나타나는 것이 완료

Disappearing: 뷰가 화면에서 사라지는 중

Disappeared: 뷰가 화면에서 사라지는 것이 완료

 

UIViewController는 view가 보여진 상태에 따라 시스템이 호출하는 life cycle의 메서드가 다른데요, 그럼 각 상태에 따라서 어떤 메서드가 있는지 알아야겠죠? 

 

viewDidLoad()

  • 뷰 컨트롤러의 모든 뷰들이 메모리에 로드됐을 때 호출
  • 메모리에 처음 로드될 때 한번만 호출
  • 보통 딱 한번 호출될 행위들을 이 메소드 안에 정의 함
  • 뷰와 관련된 추가적인 초기화 작업, 네트워크 호출

viewWillAppear()

  • 뷰가 뷰 계층에 추가되고, 화면에 보이기 직전에 매 번 호출
  • 다른 뷰로 이동했다가 돌아오면 재호출
  • 뷰와 관련된 추가적인 초기화 작업

viewDidAppear()

  • 뷰 컨트롤러의 뷰가 뷰 계층에 추가된 후 호출
  • 뷰를 나타낼 때 필요한 추가 작업
  • 애니메이션을 시작하는 작업

viewWillDisappear()

  • 뷰 컨트롤러의 뷰가 뷰 계층에서 사라지기 전에 호출
  • 뷰가 생성된 뒤 작업한 내용을 되돌리는 작업
  • 최종적으로 데이터를 저장하는 작업

viewDidDisappear()

  • 뷰 컨트롤러의 뷰가 뷰 계층에서 사라진 뒤에 호출
  • 뷰가 사라지는 것과 관련된 추가 작업

이제는 실습을 해보겠습니다

xcode를 켜 주시고, 아래 그림과 같이 storyboard를 만들어 주세요

 

 

FirstVC 버튼을 마우스 오른쪽 버튼을 눌러 오른쪽 viewController 클릭해서 show를 눌러줍니다. 

그런 다음, FirstVC의 코드를 다음과 같이 작성합니다.

 

앱이 실행되면 viewDidLoad -> viewWillAppear -> viewDidAppear 순서대로 실행이됩니다. 

연두색 화면으로 넘어가면 첫번째 화면은 viewWillDisappear -> viewDidDisappear 가 실행이 됩니다. 

연두색 화면의 back button을 누르게 되면 다시 첫번째 화면으로 돌아가고 viewWillAppear -> viewDidAppear가 실행됩니다.

 

이제 life cycle에 대해서 조금 이해가 가시나요??

 

'Swift > Swift' 카테고리의 다른 글

[Swift] Property Observer - didSet, willSet 톺아보기  (0) 2024.01.06
[Swift] 화면 전환하기  (0) 2023.08.29
[Swift] 랜덤 문자열값 뽑아내기  (0) 2023.07.17
[Swift] Inout Keyword  (0) 2023.07.16