2016-10-23 10 views
3

Mein Code ist:UIPickerViewDelegate Xcode 8 Swift 3

class ViewController: UIViewController,UIPickerViewDelegate, UIPickerViewDataSource { 
    @IBOutlet weak var picherview: UIPickerView! 

    var prodotti = ["AAAAA", "VVVV", "CCCC"] 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     self.picherview.dataSource = self 
     self.picherview.delegate = self 
     // Do any additional setup after loading the view, typically from a nib. 
    } 

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

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

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

    func pickerview(_ : UIPickerView, titleForRow row: Int, forComponent component: Int) -> String! { 
     return prodotti[row] 
    }  //ci consente di determinare quale riga è stata selezionata 

    func pickerview(_ : UIPickerView, didSelectRow row: Int, inComponent component: Int) { 
     print("Hai selezionato: \(prodotti[row])")} 
    } 

Dieser Fehlercode haben:

Type 'ViewController' does not conform to protocol 'UIPickerViewDataSource'

eine Lösung?

+3

Schauen Sie sich die Dokumentation zu 'UIPickerViewDataSource' und' UIPickerViewDelegate' an. Alle Methoden haben sich in Swift 3 geändert. – rmaddy

Antwort

12

korrekte Syntax von picker Swift 3

// DataSource 
func numberOfComponents(in pickerView: UIPickerView) -> Int { 

} 
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { 

} 

// Delegate 

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

} 
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { 

} 
1

picker mit done Taste vollständiges Beispiel in Swift 3

  1. Zu allererst Erstellen Sie eine einzelne Ansicht Anwendung in schnellen 3. Ziehen Sie eine Text Feld & verbinden, um Controller anzuzeigen.
  2. Umsetzung in zwei picker Protokoll namens UIPickerViewDelegate, UIPickerViewDataSource
  3. UIPickerViewDelegate & UIPickerViewDataSource müssen Methoden wie numberOfComponents implementieren, numberOfRowsInComponent, titleForRow
  4. Picker Ansicht Look Like Unten Bild enter image description here
  5. Voll Quelle unten

    gegeben
    class ViewController:UIViewController,UIPickerViewDelegate,UIPickerViewDataSource { 
    //Text field Connect 
    @IBOutlet weak var txtPickerTextField: UITextField! 
    //Array declare 
    let pickerArray = ["Bangladesh","India","Pakistan","USA"] 
    var selectedRow = 0; 
    //Picker View Object 
    let picker = UIPickerView() 
    
        override func viewDidLoad() { 
        super.viewDidLoad() 
        //Don't forget to initialize pickerview delegate & datasource 
        picker.delegate = self 
        picker.dataSource = self 
        txtPickerTextField.inputView = picker 
        //Done Button function called 
        doneButton(); 
    } 
        public func numberOfComponents(in pickerView: UIPickerView) -> Int { 
        return 1 
        } 
    
        func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { 
        return pickerArray.count 
        } 
    
        public func pickerView(_pickerView:UIPickerView,numberOfRowsInComponent component: Int) -> Int { 
         return pickerArray.count 
        } 
    
        func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? { 
         return pickerArray[row] 
        } 
        func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { 
         selectedRow = row; 
         txtPickerTextField.text = pickerArray[row] 
         self.view.endEditing(false) 
        } 
    
        //begin Doen Button function 
        func doneButton(){ 
    
        let pickerView = picker 
        pickerView.backgroundColor = .white 
        pickerView.showsSelectionIndicator = true 
    
        var toolBar = UIToolbar() 
        toolBar.barStyle = UIBarStyle.default 
        toolBar.isTranslucent = true 
        toolBar.tintColor = UIColor(red: 76/255, green: 217/255, blue: 100/255, alpha: 1) 
        toolBar.sizeToFit() 
    
         let doneButton = UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.bordered, target: self, action: "donePicker") 
         let spaceButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.flexibleSpace, target: nil, action: nil) 
         let cancelButton = UIBarButtonItem(title: "Cancel", style: UIBarButtonItemStyle.bordered, target: self, action: "canclePicker") 
    
         toolBar.setItems([cancelButton, spaceButton, doneButton], animated: false) 
         toolBar.isUserInteractionEnabled = true 
    
         txtPickerTextField.inputView = pickerView 
         txtPickerTextField.inputAccessoryView = toolBar 
         } 
    
    
        func donePicker() { 
        self.txtPickerTextField.text = pickerArray[selectedRow] 
        txtPickerTextField.resignFirstResponder() 
        } 
    
         func canclePicker() { 
         txtPickerTextField.resignFirstResponder() 
         } 
          //End Doen Button function 
         } 
    
  6. Komplettes Projekt wird an G gegeben ithub. Github Link: https://github.com/enamul95/PickerView1.git

+0

Sie sind willkommen .. –

Verwandte Themen