ViewController๋ iOS ์ฑ ๊ฐ๋ฐ์์ ๋นผ๋์ ์ ์๋ ์์์ด๋ค. ๊ตฌ์กฐ์ ์ผ๋ก ์ด๋ป๊ฒ ๊ตฌ์ฑ๋์๋์ง ์์๋ณด๊ณ , ์ด๋ค life cycle์ ๊ฐ์ง๋์ง ์ดํดํด๋ณด์. ๊ทธ๋ผ ์์ํ์.
ViewController
-
View management model
-
์ญํ
- view ๊ตฌ์ฑ
- view event ์ฒ๋ฆฌ
- data๋ฅผ view์ ์ฐ๊ฒฐ
-
templates
class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // VC๋ด๋ถ์ property๋ก ์๋ view๊ฐ ํ๋ฉด์ ๋ณด์ด๊ธฐ ์ํด load ๋์์ ๋ ํธ์ถ๋จ // VC ์์ฑ ์์ ๊ณผ view๊ฐ ๋ณด์ด๋ ์์ ์ ์ฐจ์ด๊ฐ ์์ } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // App์ด ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ ๊ฒฝ๊ณ ๋ฅผ ๋ฐ์ ๊ฒฝ์ฐ ํธ์ถ๋จ } }
- ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ AppDelegate์์๋ ๊ฐ๋ฅ
์ด๊ธฐํ
// code
public init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?)
// storyboard
public init?(coder: NSCoder)
- parameter
- nibName: nib ํ์ผ๋ช
- bundle: nibํ์ผ์ด ์๋ Bundle(NSBundle) ๊ฐ์ฒด
UIViewController.init()
์ธ ๊ฒฝ์ฐ nil๋ก ๋์ด์ด
- ํ์ฉ
class ViewController: UIViewController { override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) { super.init(nibName: nibNameOrnil, bundle: nibBundleOrNil) // ์ด๊ธฐํ ์ฝ๋ ์์ฑ // ํด๋น ์์ ์๋ view๊ฐ ์์ // view์ ๊ด๊ณ์๋ object ์ด๊ธฐํ ์ฉ๋๋ก ์ข์ } } class ViewController: UIViewController { required init?(coder: NSCoder) { super.init(coder: coder) // ์๋ฑ } }
Life Cycle
- init
- loadView
- viewDidLoad
- viewWillAppear
- viewDidAppear
- viewWillDisappear
- viewDidDisappear
- deinit
LoadView
- view์ ๋ํ customizing ์์
- ๊ตฌํํ์ง ์์๋ ๊ธฐ๋ณธ์ ์ผ๋ก view๊ฐ ์์ฑ๋์ด load๋จ
override func loadView() {
let view = UIView(frame: UIScreen.main.bounds) // ์คํฌ๋ฆฐ ํฌ๊ธฐ์ ๋ง์ถ view ์์ฑ
view.backgroundColor = UIColor.green
view.autoresizingMask = [.flexibleWidth, .flexibleHeight] // window์ ํฌ๊ธฐ ๋ณ๊ฒฝ์ ๋ง์ถฐ ๋ณํ๋๋ก ์ค์
self.view = view
}
์ฃผ์์ฌํญ
- init method์์ view์ ์ ๊ทผํ๋ฉด ์ํํจ
- ์ด๊ธฐํ ์์ ์ค์ viewDidLoad๊ฐ ํธ์ถ๋ ์ ์์
- method ํธ์ถ ์์๊ฐ ๋ฌ๋ผ์ ธ ๋ฒ๊ทธ ๋ฐ์์ํ ์์
- ์ผ๋ฐ์ ์ธ ์ํฉ
- viewController๊ฐ ์ฌ์ฉ๋๊ธฐ ์์ํ ๋ ํธ์ถ๋จ
- init method์์ ์ ๊ทผ
- view ์์ฑ, ์ด๊ธฐํ ๊ณผ์ ์์ ํธ์ถ๋จ
Container View Controller
- UIViewController ํ์์ ChildViewController๋ฅผ ๋ ์ ์์
- ๊ธฐ๋ฅ์ ๋ฐ๋ผ ViewController๋ฅผ ๋ถ๋ฆฌ ํ, Container ViewController์ ๋ชจ์์ ๋ณด์ฌ์ค ์ ์์
- ๋์ผํ ์๋ช ์ฃผ๊ธฐ๋ฅผ ๊ฐ์ง
์ ๋ฆฌ
- UIWindow์์ rootViewController๊ฐ ์ฌ๋ผ๊ฐ๋ค.
- ViewController์์๋ ChildViewController๋ฅผ ๊ฐ์ง๋ค.
- ์ถ๊ฐ์ ์ผ๋ก ๋ค๋ฅธ ์ฐฝ์ ๋์ธ์๋ ์๊ณ (modal) ์ด๋
presentedViewController
๋ก ์ ๊ทผ ๊ฐ๋ฅํ๋ค.