iOS UIPickerView 调用 numberOfRowsInComponent,即使 UIPickerViewD



嗨,这个问题只是出于好奇。

我的控制器中有UIPickerView,

委托是从IB绑定并在控制器中实现的,并且UIPickerView数据源方法之一在控制器编号OfRowsInComponent中实现。即使数据源没有绑定和完全实现,此方法也会被调用。我想知道这怎么可能?我的想法之一是,这个从后台隐式调用的方法......我的代码;

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]
}

正如您在评论中提到的,您已从 storyboard 中设置了 delegate/datasource ,那么它相当于 pickerView.delegate = self/pickerView.datasource = self .

您可以通过编码或从情节提要分配delegatedatasource。所以在你的情况下,你已经从storyboard完成了它,所以它实际上与你的pickerView绑定。

相关内容

最新更新