Delegate.md
์ง์ญํ๋ฉด, '๋๋ฆฌ์', '๋๋ฆฌ์ธ', '์์ํ๋ค' ๋ผ๋ ๋ป์ด๋ค.
swift์์๋ ์ด์ ๋น์ทํ ์๋ฏธ๋ก ์ฌ์ฉ๋๋๋ฐ, ์ค์ ์ฝ๋๋ก ๋ณด๋ฉด์ ์ดํดํด๋ณด์
import UIkit
class ViewController: UIViewController{
@IBOutlet weak var enteredLabel: UILabel!
@IBOutlet weak var textField: UITextField!
@IBAction func buttonClicked(_ sender: Any) {
enteredLabel.text = textField.text
}
}์์ ์ฝ๋๋ button์ ๋๋ฅด๊ฒ ๋๋ฉด textField์ ์ ๋ ฅํ ๋ฐ์ดํฐ๊ฐ label์ ํ์๋๊ฒ ํ๋ ์ฝ๋์ด๋ค.
swift๋ฅผ ์ฒ์ ๋ง๋ณด๊ฒ ๋ ๋ ๋๋ถ๋ถ @IBOutlet์ผ๋ก storyboard์ ์๋ ui์ ์ํตํ๋ค.
์ด๋ ๊ฒ ์ง์ IBOutlet์ผ๋ก ์ฐ๊ฒฐํ์ฌ ๋ฉ์๋๋ฅผ ๊ตฌํํ๋ ๊ฒ ์ธ์ ๋ฐฉ๋ฒ ์ค ํ๋๊ฐ delegate ํจํด์ด๋ค.
delegate ํจํด์๋ ์ธ ๊ฐ์ง ๊ฐ๋ ์ด ์กด์ฌํ๋ค.
Receiver: ์์ ์
Delegate: ๋๋ฆฌ์
Send (Delegate โ Receiver)
Delegate๋ Reciever๋ก๋ถํฐ Receiver์์ ์ ๊ฐ์ฒด๋ฅผ ์ ๋ฌ ๋ฐ๊ณ , ์ด๋ฅผ ์ด์ฉํ ํ๋(ex: ๋ฉ์๋ ํธ์ถ)์ ์ทจํ์ ๋ ์์ ์๋ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ๊ฒ ๋๋ค.
์ ์ฌ์ฉํ๋๊ฐ?
์ฒซ๋ฒ์งธ๋ก ์๊ฐํ๋ @IBOutlet์ ๊ฒฝ์ฐ ์ง์ UI์ ์์๋ฅผ ์ฐ๊ฒฐํ๊ณ ํ๋ํ๋์ฉ Action์ ๋ง๋ค์ด์ผํ์ง๋ง, delegate๋ฅผ ์ฌ์ฉํ๋ฉด ์ฌ๋ฌ ์์๊ฐ ๋น์ทํ Action์ ์ทจํ ๊ฒฝ์ฐ, ๋ง๋ค์ด๋์ delegate์ ์์ ์ ๊ฐ์ฒด๋ฅผ ์ ๋ฌํ์ฌ delegate์์ ๊ตฌํ๋ ํ๋์ ์ทจํ๋ฉด ๋๊ธฐ๋๋ฌธ์ ์ฝ๋์ ์ฌ์ฌ์ฉ์ฑ์ด ๋์์ง๋ค.
viewcontroller์์ delegate๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ๊ฐ์์์ delegate ํ๋กํ ์ฝ์ ์์ ๋ฐ์ ์ฌ์ฉํ๊ฑฐ๋ ์๋ ์ฝ๋ ์ฒ๋ผ extension์ผ๋ก ๊ธฐ์กด์ ํ๋กํ ์ฝ์ ํ์ฅ์์ผ ์ฌ์ฉํ๋ค.
์ค์ ์ฝ๋)
Last updated