2017-09-16 2 views
-1

Ich habe meiner Anwendung eine Auswahlansicht hinzugefügt und sie auf ein Zahlenfeld gesetzt. Wenn ich die Anwendung starte, sehe ich nur Fragezeichen.Swift-Picker-Ansicht mit Zahlen, die Fragezeichen anzeigen

Weiß jemand, was das Problem ist? Ich habe auch versucht, Typ Int zu verwenden und erhielt die gleichen Ergebnisse.

Hier ist mein Code.

import UIKit 
import Firebase 
import FirebaseDatabase 
import FirebaseStorage 

class myViewController: UIViewController, UIPickerViewDelegate,UIPickerViewDataSource { 
    @IBOutlet weak var settings: UIBarButtonItem! 
    @IBOutlet weak var myTextField: UITextField! 
    @IBOutlet weak var enterExit: UISegmentedControl! 

    @IBOutlet weak var dayLabel: UILabel! 
    @IBOutlet weak var pickerView: UIPickerView! 
    @IBOutlet weak var daysTextField: UITextField! 

    let numbers = [1,2,3,4,5,6,7,8,9,10,11,12,13,14] 
    var hhh = Int() 
    let seconds = 60.0 

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

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

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

    func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { 
     var days = numbers[row] 
    } 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     self.pickerView.delegate = self 
     self.pickerView.dataSource = self 

enter image description here

+0

Check this: https: //stackoverflow.com/questions/40199826/uipickerviewdelegate-xcode-8-swift-3, ich glaube, Sie brauchen, um über 'uipickerviewdelegate' zu ​​lernen und' uipickerviewdatasource' – 3stud1ant3

+0

Ihre Frage Aktualisierung mit Ihr relevanter Code. Zeigen Sie Ihre Delegaten- und Datenquellenmethoden für die Auswahlansicht an. – rmaddy

+0

gibt es meinen Code @ 3stud1ant3 –

Antwort

2

Ihr Problem ist mit den folgenden:

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

Diese Methode ist nicht privat sein und es sollte die richtige Signatur haben. Diese Delegiertenmethode muss ein optionales String, nicht ein optionales Int zurückgeben.

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