App, ViewController, View κ°κ°μ μλͺ μ£ΌκΈ°(LifeCycle)μ λν΄ νμ΅ν΄λ³΄μ.
νλ©΄μ ꡬμ±νκ³ μ΄ν΄νλλ° μ€μν ν΅μ¬ κ°λ μ΄λ€!
App LifeCycle
- λ§λ€ μ±μ΄ μ€νλκ³ μ’ λ£λλ λμ μ΄λ€ λΌμ΄ν μ¬μ΄ν΄μ κ°μ§λμ§ μμ보μ.
- μλμ κ°μ΄ λ€μ―κ°μ§μ μνλ₯Ό κ°μ§λ€.
Not Running
- μ€νλμ§ μκ±°λ μ’ λ£λ μν.
InActive
- μ±μ΄ Foreground μνλ‘ λμκ°μ§λ§, μ΄λ²€νΈλ λ°μ§ μλ μν, μ μ μ‘΄μ¬νλ μν.
- μλμμ μλ‘ μ€μμ΄ν νλ μκ° InActive μνκ° λλ€.
Active
- μΌλ°μ μΌλ‘ μ±μ΄ λμκ°λ μν(μ΄λ²€νΈλ₯Ό λ°λ λ¨κ³)
Background
- μ±μ΄ Suspended(μ μ μν) μνλ‘ μ§μ νκΈ° μ κ±°μΉλ μν (μμ , ν΅ν μ± κ°μ κ²½μ°λ background)
Suspended
- μ±μ΄ Background μνμ μμ§λ§, μ무 μ½λλ μ€ννμ§ μλ μν.
- μμ€ν μ΄ μμλ‘ Background μνμ μ±μ Suspended μνλ‘ λ§λ λ€.(리μμ€ ν΄μ )
- Not Running κ³Ό μΌλ°μ μΌλ‘ λμΌ
πμ± λΌμ΄ν μ¬μ΄ν΄μ μμ κ°μ μνλ₯Ό κ±°μΉλ©΄μ ActiveλΆν° Background μνμμ μ¬λ¬ μμ μ΄ μνλλ€.
UIViewController LifeCycle
- μ± λΌμ΄ν μ¬μ΄ν΄ λ§νΌμ΄λ UIKitμΌλ‘ νλ©΄μ 그리λ κ³Όμ μμ νμμ μΌλ‘ μμ§ν΄μΌν λΆλΆμ΄λ€.
- λνλ¨κ³Ό μ¬λΌμ§ λ μνλ₯Ό κ°μ§λ©° μνμ μ νμμμ μ΄ 8κ°μ λ©μλκ° νΈμΆλκ³ μ¬μ©λλ€.
π μμ μ μ νμ ν΄μΌνλ€!
λ·°κ° λ³΄μ¬μ§λ μν©
- Appearing: λ·°κ° νλ©΄μ λνλλ μ€
- Appeard: λ·°κ° νλ©΄μ λνλλ κ² μλ£ λ μν
- Disappearing: λ·°κ° νλ©΄μμ μ¬λΌμ§λ μ€
- Disappeared: λ·°κ° νλ©΄μμ μ¬λΌμ§ μν
λ·° κ΄λ ¨ λ©μλ
- λ·°μ μνλ³νμ λ°λΌ μμ€ν μ μν΄ νΉμ λ©μλ νΈμΆλ¨
- μ μ ν μν©μ λ§μΆ° λ©μλμ μ μ ν΄μ£Όμ΄μΌ νλ€.
init()
- UIViewController κ°μ²΄κ° μμ±λ λ νΈμΆ
- κ°μ²΄ μμ±μ νμν μμ‘΄μ±, ꡬμ±μμ λ£μ΄μ€
loadView()
- 컨νΈλ‘€λ¬μ λ·° κ³μΈ΅ κ΅¬μ‘°κ° μμ±λ λ νΈμΆ
viewDidLoad()
- λ·° κ³μΈ΅ ꡬ쑰κ°(λ·° 컨νΈλ‘€λ¬μ λͺ¨λ λ·°) λ©λͺ¨λ¦¬μ λ‘λλμμΌλ©°, μ΄κΈ°ν μμ μ μνν λ νΈμΆ
- λ©μλκ° νΈμΆλλ μμ μμ λ€μν λ·° μ»΄ν¬λνΈ, λ μ΄μμ μ‘λ κ³Όμ μ€μ
viewWillAppear()
- λ·°κ° νλ©΄μ λνλκΈ° μ§μ μ νΈμΆ. λ·°λ₯Ό μ λ°μ΄νΈνκ±°λ μ λλ©μ΄μ μ μμ
viewDidAppear()
- λ·°κ° νλ©΄μ λνλλ©΄ νΈμΆ. μ λλ©μ΄μ μ μ’ λ£νκ±°λ λ·°μ μνλ₯Ό μ λ°μ΄νΈ
viewWillDisappear()
- λ·°κ° νλ©΄μμ μ¬λΌμ§κΈ° μ§μ μ νΈμΆ. λ°μ΄ν°λ₯Ό μ μ₯νκ±°λ μ λλ©μ΄μ μ μμ
viewDidDisappear()
- λ·°κ° νλ©΄μμ μ¬λΌμ§λ©΄ νΈμΆ. μ λλ©μ΄μ μ μ’ λ£νκ±°λ λ·°μ μνλ₯Ό μ λ°μ΄νΈ
deinit
- UIViewController κ°μ²΄κ° λ©λͺ¨λ¦¬μμ ν΄μ
- λ©μλλ€μ ν΅ν΄ μ ν리μΌμ΄μ μ λ€μν λ¨κ³μμ νλ©΄ μ ν λ° μνλ₯Ό ν¨μ¨μ μΌλ‘ κ΄λ¦¬ν μ μλ€.
- μμ μ½λλ‘ λ·° 컨νΈλ‘€λ¬μ μλͺ μ£ΌκΈ°λ₯Ό νμΈν΄λ³΄μ!
class MyViewController: UIViewController {
override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) {
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
// μ΄κΈ°ν λ©μλμμ νμν μμ
μν
}
required init?(coder: NSCoder) {
super.init(coder: coder)
// μ΄κΈ°ν λ©μλμμ νμν μμ
μν
}
override func loadView() {
// λ·°λ₯Ό μ§μ μμ±νμ¬ ν λΉ
self.view = UIView()
}
override func viewDidLoad() {
super.viewDidLoad()
// λ·°μ λν μΆκ° κ΅¬μ± μμ
μν
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
// λ·°κ° λνλκΈ° μ μ μνν μμ
μν
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
// λ·°κ° λνλ νμ μνν μμ
μν
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
// λ·°κ° μ¬λΌμ§κΈ° μ μ μνν μμ
μν
}
override func viewDidDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
// λ·°κ° μ¬λΌμ§ νμ μνν μμ
μν
}
deinit {
// λ·° 컨νΈλ‘€λ¬κ° λ©λͺ¨λ¦¬μμ ν΄μ λκΈ° μ μ μνν μμ
μν
}
}
'Devlogπ©π»βπ» > iOS' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[iOS] ScrollView μ¬μ©νκΈ° (2) | 2024.04.22 |
---|---|
[iOS] CocoaPods λΌμ΄λΈλ¬λ¦¬ μ€μΉ ν μ¬μ©νκΈ°(Alamofire, Kingfisher) (6) | 2024.04.12 |
[iOS] UIViewController, UIView μ»΄ν¬λνΈ μ΄ν΄νκΈ° (2) | 2024.03.19 |
[iOS] Xcode μμνκΈ° (2) | 2024.03.19 |
[iOS] μ¬μ©μ μΈν°νμ΄μ€μ λ‘μ§ μ°κ²° - @IBOutletμ @IBAction (3) | 2024.01.26 |