以下是用于填充两个UIPickers的代码的剪辑,并根据第一个选择器的选择值,根据其他函数查找利率。当我只有一个使用数组贷方填充它的选择器视图时,此代码有效。问题不在于我添加了第二个pickerView,它使用相同的信息,使用错误的pickerView搜索信息。它应该使用名为orginalLender的pickerView进行搜索。而不是newMortgageLender。请注意pickerView。我需要使用orginalLender。希望这有一定道理。
var currentLender = [Rate]()
var lenders = [String]()
var lendersKey = [String]()
var newLenders = [String]()
currentLenderPicker.delegate = self
currentLenderPicker.dataSource = self
currentLenderPicker.tag = 1
newLenderPicker.delegate = self
newLenderPicker.dataSource = self
newLenderPicker.tag = 2
orginalLender.inputView = currentLenderPicker
newMortgageLender.inputView = newLenderPicker
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
if pickerView == currentLenderPicker
{
return lenders[row]
}
else if pickerView == newLenderPicker
{
return newLenders[row]
}
return ""
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent
component: Int) -> Int {
if pickerView == currentLenderPicker
{
return lenders.count
}
else if pickerView == newLenderPicker
{
return newLenders.count
}
return 1
}
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
if pickerView == currentLenderPicker
{
orginalLender.text = lenders[row]
}
else if pickerView == newLenderPicker
{
newMortgageLender.text = newLenders[row]
}
// controls the search for the selected lenders rate
selectedLenderKey = lendersKey[row]
if let selectedLender = currentLender.filter({ $0.fiName ==
lenders[row] }).first
{
Global.selectedRate = selectedLender
}
self.view.endEditing(false)
}
// these values are set inside a function
self.currentLender.append(rate)
self.lenders.append(fiName)
self.lendersKey.append(lenderKey)
self.newLenders.append(fiName)
}
价值正在改变
if let selectedLender = currentLender.filter({ $0.fiName == lenders[row] }).first
{
Global.selectedRate = selectedLender
}
发生的事情是它根据所选的最后一个选择器视图搜索费率。我希望它只使用标有"原始贷方的文本字段进行搜索。