UILabel 值不会根据 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 版

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...