IOS🍎/iOS+Swift

[iOS] View Controller 생λͺ…μ£ΌκΈ°

Jouureee 2021. 5. 3. 01:49

λ·° μ»¨νŠΈλ‘€λŸ¬λŠ” λ°μ΄ν„° 객체와 λ·° μ‚¬μ΄μ˜ μ€‘κ°œμžμ΄λ‹€.

● method

viewDidLoad() 

- λ·°λ₯Ό λ©”λͺ¨λ¦¬μ— λ‘œλ“œ ν•œ ν›„ μˆ˜ν–‰, 뷰의 μ΄ˆκΈ°ν™” μž‘μ—… 

 

viewWillAppear()

- will : 화면에 ν‘œμ‹œλ˜κΈ° 직전 호좜

- λ·°κ°€ 화면에 λ‚˜νƒ€λ‚  λ•Œ ν˜ΈμΆœλ˜λŠ” λ©”μ„œλ“œ

 

viewDidAppear()

- did : 화면이 ν‘œμ‹œλœ 직후 호좜

 

viewWillDisappear() 

- λ·°κ°€ ν™”λ©΄μ—μ„œ μ‚¬λΌμ§ˆ λ•Œ ν˜ΈμΆœλ˜λŠ” λ©”μ„œλ“œ

 

viewDidDisappear()

- λ·°κ°€ ν™”λ©΄μ—μ„œ μ™„μ „νžˆ μ‚¬λΌμ‘Œμ„ λ•Œ ν˜ΈμΆœλ˜λŠ” λ©”μ„œλ“œ 


●생λͺ… μ£ΌκΈ°(life cycle)

 

viewDidLoad

           ↓

viewWillAppear

           ↓

viewDidAppear

           ↓

viewWillDisappear

           ↓

viewDidDisappear

           ↓

viewDidUnload

 

 

loadView()κ°€  controllerλ₯Ό κ΄€λ¦¬ν•˜λŠ” viewλ₯Ό λ§Œλ“œλŠ”λ° 이 λ©”μ†Œλ“œλ₯Ό 직접 ν˜ΈμΆœν•΄μ„  μ•ˆλœλ‹€. λŒ€μ‹ μ— viewControllerκ°€ loadView()λ₯Ό view propertyκ°€ μš”μ²­λ˜μ–΄μ§ˆλ•Œ ν˜ΈμΆœν•˜λŠ”λ° μ΄λ•Œ loadView()λŠ” viewλ₯Ό λ§Œλ“€κ±°λ‚˜ λ‘œλ“œν•˜κ³  viewλ₯Ό view property에 ν• λ‹Ήν•œλ‹€.


 

* viewWillApear κ³Ό viewDidAppear 사이

  • viewWillLayoutSubviews()
  • viewDidLayoutSubviews()

κ°€ 더 올 수 μžˆλ‹€.

 


● λ·° μ»¨νŠΈλ‘€λŸ¬μ—μ„œ λ ˆμ΄μ•„μ›ƒμ΄ κ²°μ •λ˜λŠ” κ³Όμ •

  1. viewWillLayoutSubviews() λ©”μ„œλ“œλ₯Ό 호좜

  2. λ·° 컨트둀러의 μ»¨ν…νŠΈ λ·°κ°€ layoutSubviews() λ©”μ„œλ“œλ₯Ό 호좜 

    - layoutSubviews() : ν˜„μž¬ λ ˆμ΄μ•„μ›ƒ 정보λ₯Ό λ°”νƒ•μœΌλ‘œ μƒˆλ‘œμš΄ λ ˆμ΄μ•„μ›ƒ 정보λ₯Ό 계산

  3. λ ˆμ΄μ•„웃 정보 λ³€κ²½λœ 사항듀을 뷰에 반영 

  4. viewDidLayoutSubviews() λ©”μ„œλ“œλ₯Ό 호좜