2014-11-04 9 views
6

iphone uygulamasına bir pickerview eklemeye çalışıyorum ancak dizimden dize göstermek yerine soru işaretlerini gösterir. Nedenini bilen var mı? Ben burada pickerView içeren kumandanın benim kodu ... Bir saattir onu anlamaya çalışıyorum:pickerView veri yerine soru işaretleri olarak görünüyor mu?

class NewIssueViewController: UIViewController, UIPickerViewDelegate { 

    var componentArr = ["component1","component2","component3","component4"] 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view. 


    } 

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

    @IBAction func CancelPressed(sender: AnyObject) { 
     self.dismissViewControllerAnimated(true, completion: nil) 
    } 

    @IBAction func AddPressed(sender: AnyObject) { 
     self.dismissViewControllerAnimated(true, completion: nil) 
    } 

    func numberOfComponentsInPickerView(pickerView: UIPickerView!) -> Int { 
     return 1 
    } 

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

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

cevap

16

Sen seçici görünümün veri kaynağı ayarlamak, ancak temsilci set vermedi.

Sonuç olarak pickerView:titleForRow: asla aranmaz.

+2

. Http://static1.squarespace.com/static/52428a0ae4b0c4a5c2a2cede/t/543c1649e4b095b4c24a3d3c/1413224010678/dataSource-delegate. png? format = 750w – scottyseus

+0

veya 'self.YourIBOutletForPicker.delegate = self' ekle –

0

PickerView'ün Datasource ve Delegate film şeridini ya film panosuna bağlamanız ya da programlayarak ayarlamanız gerekir. Aşağıdaki resme bakın.

enter image description here

0

Yeni Swift 3

i bunların çalışması için aşağıdaki uygulamış, yukarıdaki yöntemlerden kullanımını onaylamamıştır. (Bazı alt çizgi param eklenen, temsilci ayarlamak bu resmi görmek için merak herkes için

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] 
} 

func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) 
{ 
    /*if(row == 0) 
    { 
     self.view.backgroundColor = UIColor.whiteColor(); 
    } 
    else if(row == 1) 
    { 
     self.view.backgroundColor = UIColor.redColor(); 
    } 
    else if(row == 2) 
    { 
     self.view.backgroundColor = UIColor.greenColor(); 
    } 
    else 
    { 
     self.view.backgroundColor = UIColor.blueColor(); 
    }*/ 
}