์ฌ๋ํฉ๋๋ค.. ๋ด๋ฐฐ์บ .. ๐
์ ..์ด๋ฒ์ฃผ ์ฐ์ TIL๋ก ์ ์ ๋์ด์!!!
๋๋ฌด ๋ฟ๋ฏํ๊ณ , ๊ธฐ์๋ค์ค..! ๊ทธ๋ฅ ๋ช ์ +1 ์ด์ง๋ง ใ ใ ใ ใ ใ ใ ใ
๋ ์ด์ฌํ TIL ์์ฑํ๊ณ ์ถ๊ฒ ๋ง๋๋.. ๊ทธ๋ฐ ์์ด๋๊น..? ใ
์ํผ! ๊ทธ๋ ๊ธฐ์ ์ค๋๋ TIL์ ์ด์ฌํ ์์ฑํด๋ด์ผ์ง ์๊ฒ ์ต๋๊น?!
๋งจ๋ ์๊ฐ์ ์ซ๊ฒจ์ ๋ TIL ์์ํฉ๋๋ค.
์ด์ ๊ต๋ณด๋ฌธ๊ณ ์ ์๋ผ๋ ์์ ์ ๋ค๋ ์์ด์!โจ
์ ๊ฐ CS์ง์์ด ๋ถ์กฑํ ๊ฑฐ ๊ฐ์์! ๋ฌธํด๋ ฅ๋ ๊ธฐ๋ฅผ๊ฒธ ์ฑ ์ ๋ ๊ถ ์ฌ์์ต๋๋ค!!
"1์ผ 1๋ก๊ทธ 100์ผ ์์ฑ IT์ง์"๊ณผ "๋ฉด์ ์ ์ํ CS ์ ๊ณต์ง์ ๋ ธํธ" ์์~!
์์นจ๊ณผ ์ ๋ ์ ๊พธ์คํ ์ฝ์ด์ ์ง์์ ์ข ๋ ์ถ๊ฐํด TIL๋ก ์จ๋ณผ๊น ํฉ๋๋ค! ๋ฌผ๋ก ๋ด์ผ๋ถํฐ์! ์ ๋ ๋ฏธ๋ฃจ๋๊ฒ ์๋๋ผ ์ค๋ ์์นจ์ ์ด๋ ์๊ฐ์ด ์ค๋ฐ๋์ด์ ์ฑ ์ฝ์๋ ค๊ณ ํ ๊ณํ์ด ๋ฌด๋์ก์ด์ใ ใ ใ
-[RTIInputSystemClient remoteTextInputSessionWithID:performInputOperation:] perform input operation requires a valid sessionID. inputModality = Keyboard, inputOperation = <null selector>, customInfoType = UIEmojiSearchOperations
์ค๋ ์ด๋ฐ ์๋ฌ ๋ฉ์ธ์ง์ ๋ง๋ฅ๋๋ ธ์ต๋๋ค. ์ฑ์ด ์ข ๋ฃ๋๊ฑฐ๋ ๋ฉ์ถ๋ ์๋ฌ๊ฐ ์๋๋ผ ์๋ฎฌ๋ ์ดํฐ์์ TextField๋ง ์ฐ๋ฉด ์ ๋ฐ ๋ฌธ๊ตฌ๊ฐ ๋จ๋๋ผ๊ตฌ์?! ์์ฒญ๋๊ฒ ์ ๊ฒฝ์ฐ์ด์ง๋ง, ์๋ฎฌ๋ ์ดํฐ์๋ง ๋ํ๋๋ ์ค๋ฅ๋ฉ์ธ์ง๋ก ํฌ๊ฒ ์ ๊ฒฝ์ฐ์ง ์์๋ ๋ ๊ฑฐ ๊ฐ๋ค๋ ๋ต๋ณ์ ๋ฐ์์ ๋ฌด์ํ๋ ค๊ณ ํฉ๋๋ค.. ๊ทผ๋ฐ ๋๋ฌด ์ ๊ฒฝ ์ฐ์ด๋ ๊ฑธ์ใ
์ฝ๋๋ก ์ง ํ๋ฉด ์ด๋ / ์คํ ๋ฆฌ ๋ณด๋๋ก ์ง ํ๋ฉด ์ด๋
์ค๋ ์คํ ๋ฆฌ ๋ณด๋๋ก ์ง ํ๋ฉด์ด๋์ ์ฝ๋๋ก ์ง ํ๋ฉด ์ด๋์ฒ๋ผ ํ๋ ค๋ค๊ฐ ๋ฐ์ดํฐ ์ ๋ฌ๋ ๋ชปํ๊ณ 1์๊ฐ์ ๋ ๋ ธ์ด์. ๊ทธ๋ฅ ์ ๊ฐ ๋ฐ๋ณด์์ด์.
์คํ ๋ฆฌ๋ณด๋๋ก ์ง๋๊ณ , ๋ ๋ค SecondViewController()๋ฅผ ์ธ์คํด์ค๋ก ์ฃผ๋ ๋๋ ์ฌ๋.. ์ ๊ทผ๋ฐ ๋ค๋ฅผ๊น์?! ์ ์ฝ๋๋ก ํ๋ฉด์ด๋์ด๋ ์คํ ๋ฆฌ ๋ณด๋๋ก ํ๋ฉด์ด๋์ ๋ค๋ฅด๊ฒ ์ง์ผํ ๊น์?!
// ์ฝ๋๋ก ํ๋ฉด ์ด๋
@IBAction func storyboardWithCodeButtonTapped(_ sender: UIButton) {
let secondVC = SecondViewController()
}
// ์คํ ๋ฆฌ ๋ณด๋ ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด ํ๋ฉด ์ด๋
@IBAction func storyboardWithCodeButtonTapped(_ sender: UIButton) {
let secondVC = storyboard?.instantiateViewController(withIdentifier: "secondVC")
}
์๋๋ฉด, ์ฝ๋๋ก์ ํ๋ฉด์์์ SecondViewController๋ ๋ฉ๋ชจ๋ฆฌ์ ์์นํด ์๊ณ , ์คํ ๋ฆฌ๋ณด๋๋ก ๋ง๋ UI("secondVC")๋ ํ ์์ญ์ ์์นํด ์์ด์. ๋์ ์ ์ฅ๋ ์์น๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ํ๋ฉด ์ด๋ํ ๋ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ์ฝ๋๋ฅผ ์ง๋ฉด ์๋๋ ๊ฒ์ด์ฃ . ์คํ ๋ฆฌ ๋ณด๋๋ก UI๋ฅผ ์งค๋๋ SecondViewController์ ์คํ ๋ฆฌ๋ณด๋๋ฅผ ์ฐ๊ฒฐ์ ํด์ฃผ์ด์ผ ํฉ๋๋ค. ( ์๋ฅผ ๋ค๋ฉด, @IBOutlet ์ผ๋ก ) ๋จ์ํ SecondViewController๋ผ๋ ์ธ์คํด์ค๋ฅผ ์์ฑํ๋ค๊ณ ํด์ ์ฐ๊ฒฐ์ด ๋๋๊ฒ ์๋๊ฑฐ์ฃ ! ๊ทธ๋์ ์คํ ๋ฆฌ ๋ณด๋์ identifier๋ฅผ ์ง์ ํด์ค๋ค ํด๋น identifier๋ก SecondViewController์ ์ฐ๊ฒฐํด์ฃผ๋ ๊ฒ์ ๋๋ค.
Picker
ํผ์ปค๋ทฐ๋ ์ฌ๋ฌ๊ฐ์ ์ ํด์ ธ์๋ ๊ฐ๋ค ์ค ์ฌ์ฉ์๊ฐ ์ ํํ๋๋ก ์ ๋ํ ๋ ์ฃผ๋ก ์ฌ์ฉํ๋ ๊ตฌ์กฐ์ฒด์ ๋๋ค!
TableView์ ๋น์ทํ ๋ธ๋ฆฌ๊ฒ์ดํธ ํจํด์ผ๋ก ์ด๋ฃจ์ด์ ธ ์์ด์!
Picker๋ทฐ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์๋
pickerView.delegate = self
pickerView.dataSource = self
delegate
์ dataSource
์ ๋ชฉ์ ์ง๋ฅผ ์๊ธฐ ์์ ์๊ฒ๋ก ๋์ด์ผํฉ๋๋ค.
๋ํ UIPickerViewDelegate
์ UIPickerViewDataSource
ํ๋กํ ์ฝ์ ๊ผญ! ์ฑํํด์ฃผ์ด์ผ ํ๊ณ , ํด๋น ํ๋กํ ์ฝ์ ์ฑํํ ์ ์๋ ๋ ํจ์๋ฅผ ๋ฌด์กฐ๊ฑด ์ ์๋ด๋ ค์ผ ํฉ๋๋ค.
// Pickerview์ ์ด์ ๊ฐ์
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
// Pickerview์ ํ์ ๊ฐ์
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return colors.count
}
์๋ PickerView์ ์ด์ ๊ฐ์์
๋๋ค. ์๋ฅผ ๋ค์ด ๋
, ์, ์ผ์ ์ฌ์ฉ์์๊ฒ Pickerview ๋ก ์ ํ๋๋๋ก ๋ง๋ ๋ค๊ณ ํ๋ฉด numberOfComponents
์ ์ด์ ๊ฐ์๋ 3๊ฐ๊ฐ ๋๊ฒ ์ง์!
์๋๋ PickerView์ ํ์ ๊ฐ์์ ๋๋ค. ํ ์ด๋น ๋ช ๊ฐ์ ์ ํ์ง๋ฅผ ์ค ๊ฑด์ธ์ง๋ฅผ ๋ฆฌํดํด์ฃผ๋ ํจ์์ ๋๋ค.