2016-12-30 64 views
1

当我我们下面的代码只在PickerView看到问号。 我找不到这个错误。UIPickerView只显示questionmarks

import UIKit 

class ViewController: UIViewController, UIPickerViewDataSource, UIPickerViewDelegate { 


    @IBOutlet weak var dbPicker: UIPickerView! 

    var dbPickerData: [String] = [String]() 


    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from a nib. 

     //Connect Data: 
     self.dbPicker.dataSource = self 
     self.dbPicker.delegate = self 

     // Fill dbPicker content 
     dbPickerData = ["White","Red","Green","Blue"] 
    } 

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

    // The number of columns of data 
    func numberOfComponents(in pickerView: UIPickerView) -> Int { 
     return 1; 
    } 

    // The number of rows of data 
    func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { 
     return dbPickerData.count; 
    } 

    // The data to return for the row and component (column) that's being passed in 
    private func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? { 
     return dbPickerData[row]; 
    } 

    func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) 
    { 
     if(row == 0) 
     { 
      self.view.backgroundColor = UIColor.white; 
     } 
     else if(row == 1) 
     { 
      self.view.backgroundColor = UIColor.red; 
     } 
     else if(row == 2) 
     { 
      self.view.backgroundColor = UIColor.green; 
     } 
     else 
     { 
      self.view.backgroundColor = UIColor.blue; 
     } 
    } 
} 
+0

你拖动你的选择器视图,并添加代表和数据来自故事板? –

+0

从'titleForRow'方法中删除'private',并添加'_'作为第一个参数标签,与上面链接的重复答案相同。 –

回答

1

而是这个

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

与这一个

func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? { 
     let str: String = dbPickerData[row] 
     return str 
    } 

希望这将有助于更新它的...

+0

谢谢!那就是诀窍! –