Swift 4.1:UIPickerView的SelectRow不会引发委托didSelectRow

时间:2019-02-04 07:28:17

标签: ios swift

页面将加载选择器视图数据,并且已设置UITextView inputView。但是,在页面加载时,当我将pickerView的selectedRow设置为数据库中的值时,我期望下面的委托将被提高。

pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int)

提到了一种解决方法,该方法说要在第一行添加一个虚拟行,但是,如果这不是一种选择,并且只有一行,那么还有其他方法可以实现吗?

1 个答案:

答案 0 :(得分:1)

来自docs(重点是我):

  

用户 在组件中选择一行时,由选择器视图调用。

这意味着如果您使用 code 选择行,则该方法将不会被调用,这大概就是您要在此处执行的操作(“我将pickerView的selectedRow设置为该值从数据库中”)。

如果您想打给didSelectRow这么好,那就打吧!

pickerView(pickerView, didSelectRow: yourRow, inComponent: yourComponent)

或者,如果您不希望自己调用委托方法,因为它们不“应该”被其他类调用,则可以将委托方法中的代码提取到您自己的方法中,然后进行调用。