我正在尝试为任务应用程序编写颜色选择器。当我尝试添加任务时,选择器永远不会更改我的“已选择”变量(在第 5 行声明)并且只会打印“空白”(第 7 行)。我对采摘者还很陌生,看不出自己做错了什么。我相当确定它与我的 didSelectRow 函数(最后一个函数)的设置有关,因为如果函数被触发,它仍然会在 else 语句中设置一些东西,即使它不是我想要的字符串,但它不是进行任何更改。
class SecondViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource {
@IBOutlet weak var input: UITextField!
@IBOutlet weak var picker: UIPickerView!
var pickerData: [String] = [String]()
var picked: String = "blank"
@IBAction func addItem(_ sender: Any) {
print (picked)
if (input.text != "" && picked != "") {
list.append(input.text! as AnyObject)
if picked == "Red" {
colors.append(UIColor.red)
}
else if picked == "Orange" {
colors.append(UIColor.orange)
}
else if picked == "Yellow" {
colors.append(UIColor.yellow)
}
else if picked == "Green" {
colors.append(UIColor.green)
}
else if picked == "Blue" {
colors.append(UIColor.blue)
}
else if picked == "Purple" {
colors.append(UIColor.purple)
}
else if picked == "White" {
colors.append(UIColor.white)
}
input.text = ""
userDefaults.set(list, forKey: "tasks")
}
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
self.picker.delegate = self
self.picker.dataSource = self
pickerData = ["Select a color", "White", "Red", "Orange", "Yellow", "Green", "Blue", "Purple"]
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return pickerData.count
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return pickerData[row]
}
func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
if row == 0 {
picked = ""
}
else {
picked = pickerData[row]
}
}
}
最佳答案
你忘了参数标签 _
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
关于ios - 选择器不输出行数据 swift 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50972299/