안녕하세요.이 질문은 호기심에 관한 것입니다.iOS UIPickerView는 numberOfRowsInComponent를 호출합니다. UIPickerViewDataSource가 바인딩되어 있지 않습니다.
내 컨트롤러에 UIPickerView가 있고 대리자가 IB에서 바인딩되어 컨트롤러에 구현되어 있으며 UIPickerViewDataSource 메서드 중 하나가 numberOfRowsInComponent 컨트롤러에 구현되어 있습니다. 이 메소드는 심지어 dataSource가 바인드되지 않고 완전히 구현된다는 것을 호출합니다. 어떻게 가능할까요? 내 생각 중 하나는 백그라운드에서 암묵적으로 호출 된이 메서드는 ... 내 코드; 당신은 당신이 storyboard
에서 delegate
/datasource
설정 한 귀하의 의견, pickerView.delegate = self
/pickerView.datasource = self
에 다음 동등한에서 언급했듯이
class ViewController: UIViewController, UIPickerViewDelegate {
let titles = ["item 1", "item 2", "item 3", "item 4", "item 5"]
override func viewDidLoad() {
super.viewDidLoad()
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return titles.count
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return titles[row]
}
스토리 보드에서 선택기보기 용 대리자를 설정 했습니까 ?? –
예, 내 인터페이스 빌더에서이 코드는 btw를 작동합니다. 제 질문은 numberOfRowsInComponent가 구현되지 않은 프로토콜을 호출하는 방법입니다. – Eren