我在编程几乎是新的,我试图建立一个应用程序,但我不知道如何解决我的问题。所有的帮助都很感激!!!!
在我的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])
}
}