如何识别UIPickerView在共享数据源时收到的事件

时间:2015-09-12 19:49:38

标签: swift uipickerview

我有2个UIPickerView个不同的数据源数组。我的问题是我无法弄清楚如何将两个数据源显示到我的2个选择器视图中。

func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
    return firstArray[row]
}

如何将我的两个数据源都返回到我的选择器视图?逻辑解决方案是识别是否点击了第一个选择器视图,使用firstArray作为数据源,如果点击了第二个选择器视图,则使用另一个数组。

指导我使用哪些属性和方法。

1 个答案:

答案 0 :(得分:2)

最简单的方法是将UIPickerView@IBOutlet存储为类顶部的存储属性(确保在StoryBoard中正确链接这些属性):

class MyVC: UIViewController, UIPickerViewDataSource {
    @IBOutlet weak var picker1: UIPickerView?
    @IBOutlet weak var picker2: UIPickerView?

    /* set up the delegates ... */

    func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
        switch pickerView { 
        case picker1: return firstArray[row]
        case picker2: return secondArray[row]
        default: /* print an error or assertion failure */ return nil
        }
    }
}