iOS/UIKit

[IOS] View life cycle (라이프 사이클)

유훈 | Yuhun 2022. 1. 30. 21:55
반응형

처음에 웹을 공부할 때 라이프사이클에 대해 조금만 하고 넘어간 적이 있는데 나중에 사용하다 보니 이 라이프사이클을 잘 아는게 작동하는데 매우 중요한 요소라는 것을 알았습니다.

마찬가지로 IOS를 처음 공부하는 지금 분명하게 짚고 넘어가는 것이 좋을 것 같습니다.

 

 Swift의 라이프사이클 메서드의 이름은 직관적입니다.

다음은 print()를 override에 추가해 콘솔에 라이프 사이클을 찍어볼 수 있도록 하였습니다.

class ViewController: UIViewController {
	// 뷰가 처음 로드될 때 실행
    override func viewDidLoad() {
        super.viewDidLoad()
        print("뷰 로드")
    }
    
    // 뷰가 화면에 나타나기 전에 실행됨
    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        print("뷰 나타날 예정")
    }
    
    // 뷰가 나타나면 실행
    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
        print("뷰 나타났음.")
    }
    
    // 뷰가 사라지기 전에 실행
    override func viewWillDisappear(_ animated: Bool) {
        super.viewWillDisappear(animated)
        print("뷰 사라질 예정")
    }
    
    // 뷰가 사라지면 실행
    override func viewDidDisappear(_ animated: Bool) {
        super.viewDidDisappear(animated)
        print("뷰 사라짐")
    }
}

 

뷰가 처음 보여지면 위의 순서와 같은 순서로 콘솔에 찍히게 됩니다.

1. 뷰 로드

2. 뷰 나타날 예정

3. 뷰 나타남

-- 여기서 부터 뷰가 사라질 때

4. 뷰 사라질 예정

5. 뷰 사라짐

 

Root 같은 경우는 이전으로 돌아갈 일이 없어 viewDidLoad는 한 번만 실행되고 이후에는 2~4만 반복되지만

만약 다른 ViewController로 이동했다가 돌아오고다시 이동하면 viewDidLoad는 다시 호출됩니다.

반응형