์ด๋ฒ์ ์์๋ณผ ๊ฑด UIButton์ ์์ฑ๊ณผ UIControl action ์ผ๋ก ๋ฉ์๋๋ฅผ ํธ์ถ ํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด๊ฒ ์ต๋๋ค~~ ์ค์ํํธ๋ก ์ฒ์ ํ๋ก์ ํธ๋ฅผ ์์ํด ๋ณด์๊ฑฐ๋ ๊ณต๋ถํ์๊ธฐ ์ํด ์ด ํฌ์คํ ์ ์ฐธ๊ณ ํ์ จ๋ค๋ฉด ๋์์ด ๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋ทฐ๋ ์ฝ๋๋ก ์์ฑํ์ง ์๊ณ xcode ์ค์ํํธ ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก ์ธํ ๋์ด ์๋ Main.Storyboard ์ ViewcController๋ฅผ ๊ฐ์ง๊ณ ํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
๋ง์ฝ ์คํ ๋ฆฌ๋ณด๋ ์์ด ์ฝ๋๋ก ํ๋ก์ ํธ๋ฅผ ์์ํ๊ณ ์ถ์ผ์ ๋ถ์ ์๋ ํฌ์คํ ์ ์ฐธ๊ณ ํ์๋ฉด ๋ฉ๋๋ค.
๋จผ์ Main.storyboard๋ก ์ด๋!
Shift + โ + L
๋ฒํผ์ ๋๋ฌ์ ์๋ ํ๋ฉด๊ณผ ๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ผ์ค๋๋ค.
ํญ๋ชฉ์์ UIButton์ ๋๋๊ทธ ํด์ ์คํ ๋ฆฌ๋ณด๋์ ์๋ view ๋ก ๋์ด ์ค๋๋ค.
๊ทธ๋ฌ๋ฉด ์ ํ๋ฉด๊ณผ ๊ฐ์ด view ์ button ์ด ์ถ๊ฐ๋์๋ ๊ฒ์ ํ์ธ ํ ์ ์์ต๋๋ค
๋ฒํผ์ ์ด๋ฆ์ ๋ฐ๊พธ๊ณ ์ถ์ ๊ฒฝ์ฐ ๋ทฐ ์์ ์๋ ๋ฒํผ์ ๋๋ธ ํด๋ฆญํ๊ฑฐ๋
์ธ๋์ผ์ดํฐ์์ ๋๋ธ ํด๋ฆญ ํด์ฃผ์๋ฉด ๋ฉ๋๋ค.
ํ๋ก์ ํธ ๋ค๋น๊ฒ์ดํฐ์์
์ต์ ํค + ์ผ์ชฝ ์ฐฝ์ ๋์ฐ๊ณ ์ถ์ ํ์ผ์ ํด๋ฆญํ๋ฉด
ํ ํ๋ฉด์ ๋ ํ์ผ์ ์ฐฝ์ด ๋น๋๋ค.
ํ์ชฝ์๋ ViewController.swift ๋ค๋ฅธ ํ์ชฝ์๋ Main.stroyboard ๋์ ์ค๋๋ค
button ์์ ์ค๋ฅธ์ชฝ ๋ง์ฐ์ค ๋๋๊ทธ ํด์ ViewController.swift ์์ ๋์ต๋๋ค.
Name ์์ญ์ ๋ฒํผ ์ด๋ฆ์ ์ง์ ํฉ๋๋ค. ์ ๋ button ์ด๋ผ๊ณ ์ง์ ํ์ต๋๋ค
@IBOutlet weak var button: UIButton!
IBOulet์ด ์์ฑ๋๊ฑธ ํ์ธํ ์ ์์ต๋๋ค.
์ด์ ViewController.swift ์์ ์คํ ๋ฆฌ๋ณด๋์ ๋ฐฐ์น์ํจ ๋ฒํผ ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
viewDidLoad()์ ์ฝ๋๋ฅผ ์์ฑํด ์ฃผ๊ฒ ์ต๋๋ค.
override func viewDidLoad() {
super.viewDidLoad()
button.addTarget(self, action: #selector(printLog), for: .touchUpInside)
}
addTarget์ event ์ค UIControl Actions์ ๋๋ค.
action / target pattern์ ์ฌ์ฉํฉ๋๋ค.
์ฌ์ฉ์๊ฐ control์์ ์ง์ ํ ์ด๋ฒคํธ๋ฅผ ์ํํ๋ฉด ์ด์ ๊ด๋ จ๋ ์์ ์ด ๋ฑ๋ก๋ target์ผ๋ก ๋ณด๋ ๋๋ค
์ฌ๊ธฐ์ ํ๊ฒ์ self ์ด๊ณ #selector()์์ ์ง์ ํ ํจ์๊ฐ ํธ์ถ ๋ฉ๋๋ค.
์์ ์๋ ํจ์ ๋ช ๋ง ์ ์์๋๋ฐ ์ค์ํํธ ๋ฒ์ ์ฌ๋ผ๊ฐ๋ฉด์
์ด๋ ๊ฒ ์ค๋ธ์ ํฐ๋ธ ํํ๋ก ๋ฐ๋๊ฒ ๋ฉ๋๋ค...
@objc func printLog() {
print("button clicked!")
}
๋ฒํผ์ด ๋๋ฆฌ๋ฉด printLog ๋ผ๋ ํจ์๋ฅผ ์คํํ๊ฒ ๋ฉ๋๋ค. ๋น๋ํ๊ณ ์คํํด์ ํ์ธํด ๋ณด๋ฉด!
๋ฒํผ์ ํด๋ฆญํ ๋ ์ฝ์์ ๋ก๊ทธ๊ฐ ์ฐํ๋ ๊ฑธ ํ์ธํ ์ ์์ต๋๋ค.
์ด์ ์ธ์๋ฅผ ์ ๋ฌํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด๊ฒ ์ต๋๋ค.
์์ฑํด ์ค ํจ์์์ ์ธ์๋ฅผ ์ ๋ฌ ๋ฐ๊ธฐ ์ํด ์๋์ ๊ฐ์ด ์์ฑํด ์ค๋๋ค.
@objc func printLog(_ sender: UIButton) {
print("button clicked!")
}
UIButton ์ ํด๋น ํจ์๋ฅผ ํธ์ถํ UIButton ์ sender ๋ก ์ ๊ทผํ ์ ์์ต๋๋ค.
override func viewDidLoad() {
super.viewDidLoad()
button.addTarget(self, action: #selector(printLog(_:)), for: .touchUpInside)
button.tag = 1123434
}
addTarget์์ ์ค๋ฅ๊ฐ ๋ ํ ๋ฐ ํจ์๋ฅผ ์ฐพ์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
printLog(_:) ๋ก ์์ฑํ ํจ์ ์ฐพ์ ์ ์๊ฒ ํด์ฃผ๊ณ printLog ์์ button ์ ์ฌ์ฉํ ์ ์๋์ง ์์๋ณด๊ธฐ ์ํด
๋ฒํผ์ ํ๊ทธ๋ฅผ ์ง์ ํด ์ค๋๋ค.
@objc func printLog(_ sender: UIButton) {
print("button clicked! \(button.tag)")
}
print ์์ ๋ณ์ ๊ฐ ํ๋ฆฐํธ ํด์ฃผ๊ธฐ ์ํด \()์ button.tag ์์ฑํ๊ณ ๋น๋ํด์ ์คํ ํด ์ค๋๋ค.
๋ฒํผ ๋๋ฅด๋ฉด ๋ฒํผ ํ๊ทธ๊ฐ ์ฝ์์ ์ฐํ๋๊ฑธ ๋ณผ ์ ์์ต๋๋ค.
๋ง์ฝ ์๋์ฒ๋ผ ๋ณ์๋ช ์ ์ง์ ํด ์ฃผ๋ ๊ฒฝ์ฐ
@objc func printLog(name sender: UIButton) {
print("button clicked! \(button.tag)")
}
addTarget ์์๋ ํธ์ถํ ํจ์์ ํํ๋ก ์ง์ ํด ์ค์ผ ํฉ๋๋ค.
override func viewDidLoad() {
super.viewDidLoad()
button.addTarget(self, action: #selector(printLog(name:)), for: .touchUpInside)
button.tag = 1123434
}
ํ๋ฆฌ๊ฑฐ๋ ๊ถ๊ธํ ์ ์ด ์๋ค๋ฉด ๋๊ธ ๋ถํ๋๋ฆฝ๋๋ค!!
'๐ iOS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Swift] PhotoKit ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉํ๊ธฐ (1) | 2021.04.02 |
---|---|
[Swift] ๋ธ๋ฆฌ๊ฒ์ดํธ ํจํด iOS (0) | 2021.03.24 |
[Swift]UITableViewDataSourcePrefetching ํ ์ด๋ธ ๋ทฐ์ ์ ๋ฐ์ดํฐ ๋ฏธ๋ฆฌ ๋ก๋ ์ํค๊ธฐ (0) | 2021.03.19 |
[Swift] Storyboard ์์ด Swift ํ๋ก์ ํธ ์์ํ๊ธฐ (0) | 2021.03.03 |
[SwiftUI] UserDefault ์ญํ์ ํ๋ AppStorage (0) | 2021.02.12 |
๋๊ธ