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

标签 swift uipickerview

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

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

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

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

最佳答案

最简单的方法是在类的顶部将两个 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
        }
    }
}

关于swift - 共享数据源时如何识别哪个 UIPickerView 收到事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32543034/

相关文章:

swift - 为什么这个 swiftUI 矩形向右移动?

uitableview - 是否有可能获得一个 .xib 窗口到选项卡式 Storyboard

iphone - 更改 UIPickerView 中两个不同组件中的行

ios - UIslider 缩略图不是从头开始的

ios - 为什么 UIImageView 在其内容模式为 .scaleAspectFill 时在纵向图片中超出其限制?

ios - 线程 1 : Signal sigabrt. 不知道如何解决这个问题

ios - 在TableView中实现多个PickerView

objective-c - 如何以编程方式向 UIPickerView 添加声音

Iphone:拆分一个用逗号分隔的字符串并在pickerview的行中打印每个

ios - 如果不是初始 View Controller ,则将操作发送到第一响应者将不起作用