textField를 누르면 picker뷰를 통해 등록된 계정을 보여주려고 pickerView를 사용했다.
계정 오른쪽에 textField에 picker뷰를 inputView로 등록했다.
기본적으로 구성한 코드이다.
class viewController : UITableViewController ...
{
var accountList = [
"A@naver.com",
"B@naver.com",
"C@gmail.com",
"D@gmail.com"
]
override func viewDidLoad()
{
let picker = UIPickerView()
picker.delegate = self
}
//MARK: - PickerViewDelegate
//피커뷰 몇개의 컴포넌트로 구성될건가?!
func numberOfComponents(in pickerView: UIPickerView) -> Int {
1
}
//몇개의 list로 구성될 것인가?
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component : Int)->Int
{
return accountList.count
}
//특정 피커뷰의 행(row) 출력될 내용 반환
func pickerViwe(_ pickerView: UIPickerView, titleForRow row : Int, forComponent component : Int)-> String?
{
return accountList[row]
}
func pickerView(_ pickerView: UIPickerView,didSelectRow row : Int, inComponent component : Int)
{
let list = self.accountList[row]
self.account.text = list
self.view.endEditing(true)
}
}
그리고나서 실행을 했더니
?! accountList는 4개의 문자열을 갖는 배열인데 ?로 표시가 된다.
문제가 없는 것 같은데
...
..
음? Delegate메소드 구현을 했는데 정의가 안됬다니..
알고 보니까
titleForRow 함수 pickerView가 아닌 pickerViwe로 쓰였던 것이다... ㅋㅋㅋ
문장 자동 완성 기능을 사용하지 않아서 타자를 신중하게 치지 못한 내 실수였다.
짠!!