2016-03-17 19 views
0

我收到此錯誤:/Users/natumyers/Desktop/proj/SignUp2ViewController.swift:11:7:類型'SignUp2ViewController'不符合協議'UIPickerViewDataSource'。我正在按照這個教程http://codewithchris.com/uipickerview-example/,但我有一個視圖控制器與默認的控制器分開。嘗試設置UIPickerView的數據源時出錯

import UIKit 

class SignUp2ViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource { 

    @IBOutlet weak var signuplabel: UITextField! 

    var labelText = String() 

    @IBOutlet weak var focusPicker: UIPickerView! 
    var focusPickerData: [String] = [String]() 

    override func viewDidLoad() { 

     super.viewDidLoad() 

     // Connect data: 
     self.focusPicker.delegate = self 
     self.focusPicker.dataSource = self 

     focusPickerData = ["type1","type2","type3","type4"] 

     signuplabel.text = labelText 
    } 

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

解決方案

的功能是關鍵這個工作。我補充說:

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

// The number of rows of data 
func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { 
    return focusPickerData.count 
} 
// The data to return for the row and component (column) that's being passed in 
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? { 
    return focusPickerData[row] 
} 

didreceiveMemoryWarning函數之後。

+1

有可能是你必須實現某些數據源的方法。 – tktsubota

+1

你需要實現所需的功能 – Paulw11

回答

2

您的視圖控制器不符合UIPickerViewDataSource協議。您需要實現這兩個需要的方法:

numberOfComponentsInPickerView(_:) 
pickerView(_:numberOfRowsInComponent:) 

The data source provides the picker view with the number of components, and the number of rows in each component, for displaying the picker view data. Both methods in this protocol are required.

https://developer.apple.com/library/prerelease/ios/documentation/iPhone/Reference/UIPickerViewDataSource_Protocol/index.html#//apple_ref/occ/intfm/UIPickerViewDataSource/numberOfComponentsInPickerView:

+0

「預期」,「分隔符」,然後當我在表達式列表中添加逗號期望表達式 –

+0

當我填充這些方法時,這一切都奏效了謝謝 –

相關問題