У меня есть UIPickerViewer
с 3 строками, после запроса данных из Firestore
я хочу иметь возможность отправить результаты на TableView
в другом VC.Segue работает, но данные не передаются.Не уверен, что мне не хватает или что я делаю не так.Спасибо!
Я могу получить данные из Firestore
в TableView
напрямую, но, когда я фильтрую данные, используя PickerView
, я не могу отправить результаты в TableView
на отдельномVC.
@IBAction func getDataTapped(_ sender: Any) {
SVProgressHUD.show()
if HOSP != (hospnameTxt.text!) {
query =
Firestore.firestore().collection(PTLIST_REF).whereField("hosp",
isEqualTo: (hospnameTxt.text!))
} else if TEAM != teamnameTxt.text {
query =
Firestore.firestore().collection(PTLIST_REF).whereField("team",
isEqualTo: (teamnameTxt.text!))
} else if ASSIGNEDMD != provnameTxt.text {
query =
Firestore.firestore().collection(PTLIST_REF).whereField("assignedmd",
isEqualTo: (provnameTxt.text!))
}
query.getDocuments { (snapshot, error) in
if let err = error {
debugPrint("error getting data: \(err)")
} else {
guard let snap = snapshot else { return }
for document in snap.documents {
let data = document.data()
let assigneddate = data[ASSIGNEDDATE] as? String ?? ""
let assignedmd = data[ASSIGNEDMD] as? String ?? ""
let officemd = data[OFFICEMD] as? String ?? ""
let ptname = data[PTNAME] as? String ?? ""
let room = data[ROOM] as? String ?? ""
let seenosee = data[SEENOSEE] as? String ?? ""
let newPtList = PTList(assigneddate: assigneddate,
assignedmd: assignedmd, officemd: officemd, ptname: ptname, room:
room, seenosee: seenosee)
self.ptlists.append(newPtList)
print(document.data())
}
//self.TableView.reloadData()
}
self.performSegue(withIdentifier: "gotoresults", sender: self)
}
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "gotoresults" {
let vc = segue.destination as! resultsdataVC
vc.ptlists = ptlists
SVProgressHUD.dismiss()
}
}
resultsdataVC
class resultsdataVC: UIViewController, UITableViewDataSource,
UITableViewDelegate {
@IBOutlet weak var tableView: UITableView!
var ptlist: PTList!
var ptlists = [PTList]()
override func viewDidLoad() {
super.viewDidLoad()
tableView.delegate = self
tableView.dataSource = self
}
func tableView(_ tableView: UITableView, numberOfRowsInSection
section: Int) -> Int {
return ptlists.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath:
IndexPath) -> UITableViewCell {
if let cell = tableView.dequeueReusableCell(withIdentifier:
"ptlistCell", for: indexPath)
as? ptlistCell {
cell.configureCell(ptlist: ptlists[indexPath.row])
return cell
}
return UITableViewCell()
}
}
ptlistCell
class ptlistCell: UITableViewCell {
@IBOutlet private weak var ptnameLbl: UILabel!
@IBOutlet private weak var assignedmdLbl: UILabel!
@IBOutlet private weak var officemdLbl: UILabel!
@IBOutlet private weak var roomnumberLbl: UILabel!
@IBOutlet private weak var seenoseeLbl: UILabel!
@IBOutlet private weak var assigneddateLbl: UILabel!
private var ptlist: PTList!
override func awakeFromNib() {
super.awakeFromNib()
}
func configureCell(ptlist: PTList) {
ptnameLbl.text = ptlist.ptname
assignedmdLbl.text = ptlist.assignedmd
officemdLbl.text = ptlist.officemd
roomnumberLbl.text = ptlist.room
seenoseeLbl.text = ptlist.seenosee
assigneddateLbl.text = ptlist.assigneddate
}
@IBAction func ptdataTapped(_ sender: Any) {
}