0

我想根据 pickerView 选择从 Firebase 中选择并显示正确的数据集。

主要问题 - UILabels 的值没有改变。我要注意的第二件事是,在我单击其中一个值后,pickerView 不会消失。

import UIKit
import Firebase

class ViewController: UIViewController, UIPickerViewDataSource, UIPickerViewDelegate {

    @IBOutlet weak var priceView: UILabel!
    @IBOutlet weak var dayView: UILabel!
    @IBOutlet weak var monthView: UILabel!
    
    @IBOutlet weak var personPicker: UITextField!
    
    var ref: DatabaseReference?
    var databaseHandle: DatabaseHandle?
    
    var postData = [String]()
    var person : String = "jack"
    
    let people = ["jack", "jenny", "don"]
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        let pickerView = UIPickerView()
        personPicker.delegate = self
        
        personPicker.inputView = pickerView
        
        
        ref = Database.database().reference()
        
        ref?.child("xf").child(person).child("price").observe(.value, with: { (snapshot) in
            
            if let i = snapshot.value as? Double 
                    self.priceView.text = "\(i)"
                    self.priceView.reloadInputViews()
                }            
        })
        
        ref?.child("xf").child(person).child("day").observe(.value, with: { (snapshot) in
            
            if let i = snapshot.value as? String {
                    self.dayView.text = "\(i)"
                    self.dayView.reloadInputViews()
                }            
        })
      
        ref?.child("xf").child(person).child("month").observe(.value, with: { (snapshot) in
            
            if let i = snapshot.value as? String {
                    self.monthView.text = "\(i)"
                    self.monthView.reloadInputViews()
                }           
        })
        
    }
    
    func numberOfComponents(in pickerView: UIPickerView) -> Int {
            return 1
        }
    
    func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
            return people.count
        }
    
    func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
            return people[row]
        }
    
    func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
            personPicker.text = people[row]
            person = people[row]
        }
    
    

}

对于第一个问题,我尝试添加 'person = people[row]' 但 UILabes 中的值没有改变

对于pickerView删除的问题,我尝试添加'pickerView.isHidden = true',但它只删除了值,而不是卡片

Xcode 版本 12.3

4

0 回答 0