我收到此錯誤:/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函數之後。
有可能是你必須實現某些數據源的方法。 – tktsubota
你需要實現所需的功能 – Paulw11