์๋ ํ์ธ์~
์ค๋์ UIViewController์ ์๋ช ์ฃผ๊ธฐ์ ๋ํด์ ์ ๋ฆฌํ๋ ค๊ณ ํฉ๋๋ค.
UIViewController์ ์๋ช ์ฃผ๊ธฐ
์ ํ ๊ฐ๋ฐ์ ๋ฌธ์์ ์๋ ์ด๋ฏธ์ง๋ฅผ ์ฐธ๊ณ ํ์๋ฉด ์ข์ ๊ฒ ๊ฐ์์ ๊ฐ์ ธ์๋ดค์ต๋๋ค.
1. init
์์ ์ด๋ฏธ์ง์์๋ ๋ณด์ด์ง ์์ง๋ง UIViewController๋ฅผ ์ด๊ธฐํํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ฒ์ ๋์ํฉ๋๋ค. (์ด๊ธฐํ ๊ตฌ๋ฌธ์ด ์๋ค๋ฉด)
UIViewController๊ฐ ๊ฐ์ฒดํ๋ ๋ init(coder:) ๋๋ Init(nibName:bundle:) ๋ฉ์๋๋ฅผ ํธ์ถํ์ฌ ์ด๊ธฐํ๋ฉ๋๋ค.
์์์ฝ๋
class MyViewController: UIViewController {
init() {
super.init(nibName: nil, bundle: nil)
// ์ด๊ธฐํ ์ฝ๋
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
// ์ด๊ธฐํ ์ฝ๋
}
}
2. viewDidLoad
UIViewController์ View๊ฐ ๋ก๋๋๊ธฐ ์ ์ ํธ์ถ๋๋ ๋ฉ์๋์ ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ๋ทฐ ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ์ค์ ํ๊ณ ํ์ํ ๋ฐ์ดํฐ๊ฐ ์์ผ๋ฉด ๋ก๋ํ๋ ์ญํ ์ ํฉ๋๋ค.
Modal ํน์ Navigation์ ํํ ๋ฑ ๋ ๋ค๋ฅธ UIViewController๊ฐ ํ๋ฉด ์์ ๋ณด์ด๊ฒ ๋ ์ดํ
์ฌ๋ผ์ก์ ๊ฒฝ์ฐ์ ๋ค์ ํธ์ถ๋์ง ์์ต๋๋ค.
์ฆ, ๊ฐ์ฒด๊ฐ ์์ฑ๋(๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ๊ฐ) ์ดํ ํ ๋ฒ๋ง ํธ์ถ๋๊ฒ ๋ฉ๋๋ค.
์์ ์ฝ๋
class MyViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// ๋ทฐ์ ๊ณ์ธต ๊ตฌ์กฐ ์ค์
setUI()
// ๋ฐ์ดํฐ ๋ก๋ ๋ฑ
loadData()
}
}
3. viewWillAppear
UIViewController๊ฐ ํ๋ฉด์ ๋ํ๋๊ธฐ ์ง์ ์ ํธ์ถ๋๋ ๋ฉ์๋์ ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ๋ทฐ๋ฅผ ์ ๋ฐ์ดํธํ๊ฑฐ๋ ํ์ํ ์ ๋๋ฉ์ด์ ์ ์ถ๊ฐํฉ๋๋ค.
Modal ํน์ Navigation์ ํํ ๋ฑ ๋ ๋ค๋ฅธ UIViewController๊ฐ ํ๋ฉด ์์ ๋ณด์ด๊ฒ ๋ ์ดํ ์ฌ๋ผ์ง ๊ฒฝ์ฐ, viewWillAppear๊ฐ ํธ์ถ๋ฉ๋๋ค.
์์ ์ฝ๋
class MyViewController: UIViewController {
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
// ๋ทฐ๋ฅผ ์
๋ฐ์ดํธํ๊ฑฐ๋ ์ ๋๋ฉ์ด์
์ ์ ์ฉ
updateUI()
addAnimation()
}
}
4. viewDidAppear
UIViewController๊ฐ ํ๋ฉด์ ๋ํ๋ ์งํ์ ํธ์ถ๋๋ ๋ฉ์๋์ ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ์ ๋๋ฉ์ด์ ์ ์์์ ์ ์ฉํฉ๋๋ค.
viewWillAppear์ ๋ง์ฐฌ๊ฐ์ง๋ก ํ๋ฉด ์ ํ ์ดํ ๋ค์ ํธ์ถ๋ฉ๋๋ค.
์์ ์ฝ๋
class MyViewController: UIViewController {
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
// ์ ๋๋ฉ์ด์
์์
startAnimation()
}
}
5. viewWillDisapear
UIViewController๊ฐ ํ๋ฉด์์ ์ฌ๋ผ์ง๊ธฐ ์ง์ ์ ํธ์ถ๋๋ ๋ฉ์๋์ ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋ฑ์ ์ญํ ์ ์ํํฉ๋๋ค.
์์ ์ฝ๋
class MyViewController: UIViewController {
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
// ์ฌ์ฉ์์ ์ ๋ณด๋ฅผ ์ ์ฅ
saveUserData()
}
}
6. viewDidDisappear
UIViewController๊ฐ ํ๋ฉด์์ ์ฌ๋ผ์ง ํ์ ํธ์ถ๋ฉ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ํด๋น ๋ทฐ์ปจํธ๋กค๋ฌ์ ๊ด๋ จ๋ ์์์ ํด์ ํ๋ ๋ฑ์ ์ญํ ์ ํฉ๋๋ค.
์์ ์ฝ๋
class ViewController: UIViewController {
override func viewDidDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
// ์์ํด์
releaseResources()
}
์ ๋๋ฉ์ด์ ์ ์ถ๊ฐํ๊ณ ์คํํ ๋ viewWillAppear์์
์์ ์ ์งํํ๋ ๊ฒ ๊ฐ์๋ฐ
์ ๋ฆฌํ๋ค๋ณด๋
์คํํ ๋๋ viewDidAppear์์ ํด์ผ ๋๋ ๊ฑธ ์๊ฒ ๋์๋ค์.
์ค๋์ ์ฌ๊ธฐ๊น์ง ์ ๋ฆฌํ๊ฒ ์ต๋๋ค.
๊ทธ๋ผ ์ด๋ง ๐๐ป ๐๐ป ๐๐ป