一尘不染

如何在一个视图控制器中使用两个UIPickerViews?

swift

UIPickerController在一个视图控制器中有两个S。我可以让一个工作,但是当我添加另一个工作时,我的应用程序崩溃了。这是我用于一个选择器视图的代码:

import UIKit

class RegisterJobPosition: UIViewController, UIPickerViewDelegate {

    @IBOutlet weak var positionLabel: UILabel!

    var position = ["Lifeguard", "Instructor", "Supervisor"]

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    func numberOfComponentsInPickerView(PickerView: UIPickerView!) -> Int
    {
        return 1
    }

    func pickerView(pickerView: UIPickerView!, numberOfRowsInComponent component: Int) -> Int
    {
        return position.count
    }

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

    func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {        
        positionLabel.text = position[row]
    }
}

现在,如何让第二个选择器工作?假设我的第二个选择器视图称为location(另一个称为position)。我尝试在选择器视图方法中复制代码,location但它不起作用。


阅读 223

收藏
2020-07-07

共1个答案

一尘不染

根据我在问题中得到的信息,我想您需要设置数据源和委托方法来处理区分哪个选择器实例正在调用它们的能力。

在选择器视图上使用tag属性是一种策略。

方法中应包含一些if / else或switch语句,这些语句具有不同的逻辑,具体取决于所引用的是位置还是位置选择器。

2020-07-07