共享数据源时如何识别哪个 UIPickerView 收到事件

How to recognize which UIPickerView received event when they share a Data Source

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

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

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

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

最简单的方法是在 class 的顶部将两个 UIPickerView 声明为 @IBOutlet 存储属性(确保 link 这些在 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
        }
    }
}