UIPickerView didSelectRow 未调用
Posted
技术标签:
【中文标题】UIPickerView didSelectRow 未调用【英文标题】:UIPickerView didSelectRow not called 【发布时间】:2014-06-26 16:57:50 【问题描述】:(Swift、Xcode6、ios8、iPhone)
在我的UIPickerView
控件中,didSelectRow
没有被调用。
Splash
设置为选取器的委托(和数据源)。
Splash
扩展了 UIViewController
类
所有其他功能都可以工作。没有错误,选择器旋转,有五行,并显示其他函数中定义的行号。
didSelectRow
方法何时被调用?我是否需要实现某种Done
按钮,或者当用户停止旋转时会触发此方法?我需要实施单独的通知吗? tyvm :)
class Splash: UIViewController, UIPickerViewDataSource, UIPickerViewDelegate
@IBOutlet var countryPicker : UIPickerView = nil
func numberOfComponentsInPickerView(pickerView: UIPickerView!) -> Int
return 1
func pickerView(pickerView: UIPickerView!, numberOfRowsInComponent component: Int) -> Int
return 5
func pickerView(pickerView: UIPickerView!, titleForRow row: Int, forComponent component: Int) -> String
return "\(row)"
func pickerView(pickerView: UIPickerView!, didSelectRow row: Int, forComponent component: Int) -> Int
println("Row: \(row)")
return row
override func viewDidLoad()
super.viewDidLoad()
// 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.
【问题讨论】:
【参考方案1】:您的签名错误,pickerView:didSelectRow:forComponent:
返回 void,而不是整数。试试:
func pickerView(pickerView: UIPickerView!, didSelectRow row: Int, forComponent component: Int)
println("Row: \(row)")
【讨论】:
【参考方案2】:斯威夫特 4.2
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int)
print("selected row = \(row)")
【讨论】:
以上是关于UIPickerView didSelectRow 未调用的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 didSelectRow 为多个 UIPickerView 使用数据
通过 didSelectRow UIPickerView 传递托管对象数据
UIPickerView didSelectRow 之后的空变量