本文介绍了PickerView 只显示 '?'的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

限时删除!!

这是我的源代码,我所做的是在 storyBoard 上创建选择器视图.通过控制+拖动在此控制器中制作 IBOutlet.

This is my source code and what I have done is make picker view on storyBoard. Make IBOutlet in this controller by contorl+drag.

它可以编译但是,只有'?'出现在选择器视图中.

It can be compiled however, only '?' appears in the picker view.

问题出在哪里?

import UIKit

class SelectViewController: UIViewController, UIPickerViewDataSource, UIPickerViewDelegate{
    var songNames = ["test1","test2","test3"]

    @IBOutlet weak var songPicker: UIPickerView!

    override func viewDidLoad(){
        songPicker.delegate = self
        songPicker.dataSource = self

    }

    func numberOfComponents(in pickerView: UIPickerView) -> Int {
        return 1
    }

    func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
        return songNames.count
    }

    func pickerView(_ pickerView: UIPickerView, titleForRow row: Int) -> String? {
        return songNames[row]
    }
}

推荐答案

您遗漏了 dataSource 方法中的 forComponent 参数.将它添加到您的 titleForRow 函数中,如下所示:

You have missed the forComponent parameter from the dataSource method. Add it in your titleForRow function like this:

func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
    return songNames[row]
}

这应该可以解决您遇到的问题.

This should fix the problem you are having.

这篇关于PickerView 只显示 '?'的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

1403页,肝出来的..

09-06 23:04