使用未解析的标识符,识别包含相同信息的2个不同的pickerview.在斯威夫特



我在编程几乎是新的,我试图建立一个应用程序,但我不知道如何解决我的问题。所有的帮助都很感激!!!!

在我的app中有2个pickerView每个pickerView包含相同的信息。我的问题是,我想从他们两个访问信息,然后连接到谷歌或雅虎,找到正确的计算之间的2,并显示在显示的底部的计算。

我所做的是使用函数didSelectRow pickerView,我添加了一个模态警报,这样当我滚动pickerView时,我可以告诉这个函数正在工作,但是它确实为两个pickerView和我想要两个pickerView是完全独立的函数。

我的主要问题是我不能从didSelectRow访问数据,这样我就可以在另一个函数中进行计算(我已经设置了一个函数来处理占位符乘数的计算/转换,直到我将它连接到API)。我知道该函数的数据超出了范围(这是编译器给我的错误),但我不知道如何访问信息,我已经搜索了几个星期。

Thank You So Much!!!!所有的帮助都很感激!!!!!Ps.这是在Swift中

如果您为两个pickerview创建@IBOutlet s:

@IBOutlet weak var picker1: UIPickerView!
@IBOutlet weak var picker2: UIPickerView!

可以使用:

let row1 = picker1.selectedRow(inComponent: 0)
let row2 = picker2.selectedRow(inComponent: 0)

你可以使用这些作为数组的索引,为你的选择器提供数据。

作为一个例子,我创建了一个带有两个选择器的视图,每当其中一个选择器发生变化时,我就打印总和:

class ViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource {
    @IBOutlet weak var picker1: UIPickerView!
    @IBOutlet weak var picker2: UIPickerView!
    var data = [1, 2, 3, 4, 5]
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }
    func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
        let sum = data[picker1.selectedRow(inComponent: 0)] + data[picker2.selectedRow(inComponent: 0)]
        print(sum)
    }
    func numberOfComponents(in pickerView: UIPickerView) -> Int {
        return 1
    }
    func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
        return data.count
    }
    func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
        return String(data[row])
    }
}

最新更新