일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- @main
- @Binding
- 문자열 반복
- inout
- Swift 문법
- 프로그래머스
- 코딩테스트
- Stride
- Swift문법
- propertWrappers
- IOS
- 랜덤추출
- @State
- 생명주기
- 짝수의합
- navigationcontroller
- willset
- Property Observer
- SwiftUI
- didset
- lifecycle
- App구조
- dismiss
- 대소문자바꾸기
- swift grammer
- randomElement
- 야곰아카데미
- Swift
- 공식문서
- LV0
- Today
- Total
miniworld
[Swift] ViewController의 Life Cycle - 생명주기 본문
안녕하세요~~ 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 |