【问题标题】:UIPickerView display question markUIPickerView 显示问号
【发布时间】:2017-04-23 19:50:37
【问题描述】:

我正在尝试在 PickerView 中显示血型,但由于某种原因,选择仅显示为问号!

这是我的代码:

    class RegisterViewController: UIViewController, UIPickerViewDataSource, UIPickerViewDelegate {
    //Methods for PickerViewDataSource

    @available(iOS 2.0, *)
    public func numberOfComponents(in pickerView: UIPickerView) -> Int {
        return 1
    }
    func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
        return pickerDataSource.count;
    }

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

    @IBOutlet weak var selectedDate: UILabel!
    @IBOutlet weak var birthDatePicker: UIDatePicker!

    @IBOutlet weak var mobileNumberField: UITextField!
    @IBOutlet weak var emailField: UITextField!
    @IBOutlet weak var nameField: UITextField!

    @IBOutlet weak var bloodTypePicker: UIPickerView!

    @IBOutlet weak var selectedType: UILabel!

    let pickerDataSource = ["Group A", "Group B", "Group AB", "Group O"];


    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        super.viewDidLoad()
        self.bloodTypePicker.dataSource = self;
        self.bloodTypePicker.delegate = self;

    }

    func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int)
    {
        if(row == 0)
        {
            self.selectedType.text = "Group A"
        }
        else if(row == 1)
        {
            self.selectedType.text = "Group B"
        }
        else if(row == 2)
        {
            self.selectedType.text = "Group AB"
        }
        else
        {
            self.selectedType.text = "Group O"
        }
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    @IBAction func datePickerAction(_ sender: Any) {

        var dateFormatter = DateFormatter()
        dateFormatter.dateFormat = "dd-MM-yyyy"
        var strDate = dateFormatter.string(from: birthDatePicker.date)
        self.selectedDate.text = strDate

    }

}

这是显示的屏幕截图:

我正在关注本教程:http://sourcefreeze.com/ios-uipickerview-example-using-swift/

提前致谢。

【问题讨论】:

    标签: swift3 uipickerview


    【解决方案1】:

    你的函数titleForRow应该是这样的:

    func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String?
    

    您在 pickerView 之前忘记了一个“_”

    【讨论】:

      【解决方案2】:

      斯威夫特 4

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

      【讨论】:

        【解决方案3】:

        而不是这个

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多