Ios PickerView中的内容未显示
我是Swift编程新手。当我想用2个不同的内容显示2个不同的选择器时,我遇到了问题。但它显示(?)而不是内容 请看下面的截图 谢谢你的帮助Ios PickerView中的内容未显示,ios,swift,Ios,Swift,我是Swift编程新手。当我想用2个不同的内容显示2个不同的选择器时,我遇到了问题。但它显示(?)而不是内容 请看下面的截图 谢谢你的帮助 let fruit = ["apple", "orange", "watermelon", "banana", "peach", "strawberry"] let food = ["rice","bread","spagheti","milk"] func numberOfComponents(in pickerView: UIPickerView)
let fruit = ["apple", "orange", "watermelon", "banana", "peach", "strawberry"]
let food = ["rice","bread","spagheti","milk"]
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
if (pickerView.tag == 1) {
return fruit.count
}
else {
return food.count
}
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
if (pickerView.tag == 1) {
return fruit[row]
}
else {
return food[row]
}
}
首先检查pickerView
DataSource
和Delegate
是否连接正确,然后通过比较pickerView有条件地加载数据,如下所示
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
if pickerView == YOUR_FIRST_PICKER {
return fruit.count
}
else {
return food.count
}
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
if pickerView == YOUR_FIRST_PICKER {
return fruit[row]
}
else {
return food[row]
}
}
我认为您还没有设置选择器的委托和数据源 首先将这些协议添加到ViewController子类中
class ViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource
然后在viewDidLoad
中,将选取者的委托和数据源设置为self
override func viewDidLoad() {
super.viewDidLoad()
pickerView1.delegate = self
pickerView1.dataSource = self
pickerView2.delegate = self
pickerView2.dataSource = self
}
确保您设置了
datasource
和delegate
我已经设置好了。@fnsmp,您在评论中明确提到您已经将delegate
和datasource
设置到您的PickerView,那么您怎么能接受这个答案呢?