Posts

Post marked as solved
8 Replies
1.2k Views
ISSUE HAS BEEN FIXED - CODE HAS BEEN UPDATED.Good afternoon, I'm running a query in Firebase and the info i get back i use it to run another query. The issue i'm having is displaying the data on the second CustomCell. I'm using the print statement and data is showing in the console. Segues are working as expected, TableViews are setup as datasource and delegate, IBOutlets are in place, Cell identifiers in Storyboard are in place too....i cannot find a solution for it, i'm not sure what i'm missing. Any help is greatly appreciated. Cell Protocolprotocol MyCellDelegate { func cellButtonPressed (_ ptdatas: [PTData]) }Cell with Second queryclass PatlistCell: UITableViewCell { @IBOutlet weak var ptnameLbl: UILabel! @IBOutlet weak var assignedmdLbl: UILabel! @IBOutlet weak var officemdLbl: UILabel! @IBOutlet weak var roomnumberLbl: UILabel! @IBOutlet weak var seenoseeLbl: UILabel! @IBOutlet weak var assigneddateLbl: UILabel! @IBOutlet weak var ptdataBtn: UIButton! var ptdatas = [PTData]() var ptdatainfoRef: CollectionReference! var delegate: MyCellDelegate? var patDataQuery: Query! override func awakeFromNib() { super.awakeFromNib() ptdatainfoRef = Firestore.firestore().collection(PTLIST_REF) } func configurePatListCell(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) { let patDataQuery = ptdatainfoRef.whereField("ptname", isEqualTo: (ptnameLbl.text!)) .whereField("assignedmd", isEqualTo: (assignedmdLbl.text!)) .whereField("officemd", isEqualTo: (officemdLbl.text!)) .whereField("room", isEqualTo: (roomnumberLbl.text!)) .whereField("seenosee", isEqualTo: (seenoseeLbl.text!)) .whereField("assigneddate", isEqualTo: (assigneddateLbl.text!)) patDataQuery.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 ptname = data[PTNAME] as? String ?? "" let dob = data[DOB] as? String ?? "" let fin = data[FIN] as? String ?? "" let officemd = data[OFFICEMD] as? String ?? "" let assignedmd = data[ASSIGNEDMD] as? String ?? "" let assigneddate = data[ASSIGNEDDATE] as? String ?? "" let room = data[ROOM] as? String ?? "" let diagnoses = data[DIAGNOSES] as? String ?? "" let reasonforadmitorconsult = data[REASONFORADMITORCONSULT] as? String ?? "" let goalofhospitalization = data[GOALOFHOSPITALIZATION] as? String ?? "" let seenosee = data[SEENOSEE] as? String ?? "" let notestocbo = data[NOTESTOCBO] as? String ?? "" let comments = data[COMMENTS] as? String ?? "" let hosp = data[HOSP] as? String ?? "" let team = data[TEAM] as? String ?? "" let newPtdata = PTData (ptname: ptname, dob: dob, fin: fin, officemd: officemd, assignedmd: assignedmd, assigneddate: assigneddate, room: room, diagnoses: diagnoses, reasonforadmitorconsult: reasonforadmitorconsult, goalofhospitalization: goalofhospitalization, seenosee: seenosee, notestocbo: notestocbo, comments: comments, hosp: hosp, team: team) self.ptdatas.append(newPtdata) print(document.data()) } } self.delegate?.cellButtonPressed(self.ptdatas) } } }First ViewControllerimport UIKit import Firebase class ResultsdataVC: UIViewController { @IBOutlet weak var resultsTableView: UITableView! var ptlists = [PTList]() var ptdatas = [PTData]() override func viewDidLoad() { super.viewDidLoad() resultsTableView.delegate = self resultsTableView.dataSource = self } override func prepare(for segue: UIStoryboardSegue, sender: Any?) { if segue.identifier == "gotoptinfo" { let destVC = segue.destination as! PatdataVC destVC.ptdatas = ptdatas } } } extension ResultsdataVC: UITableViewDataSource, UITableViewDelegate, MyCellDelegate { func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return ptlists.count } func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { if tableView == self.resultsTableView { let cell = tableView.dequeueReusableCell(withIdentifier: "PatlistCell", for: indexPath) as? PatlistCell cell!.configurePatListCell(ptlist: ptlists[indexPath.row]) cell!.delegate = self return cell! } return UITableViewCell() } func cellButtonPressed() { self.ptdatas = ptdatas performSegue(withIdentifier: "gotoptinfo", sender: self) } }Second CustomCellclass PatdataCell: UITableViewCell { @IBOutlet weak var ptnameLbl: UILabel! @IBOutlet weak var dobLbl: UILabel! @IBOutlet weak var finLbl: UILabel! @IBOutlet weak var officemdLbl: UILabel! @IBOutlet weak var assignedmdLbl: UILabel! @IBOutlet weak var assigneddateLbl: UILabel! @IBOutlet weak var roomnumberLbl: UILabel! @IBOutlet weak var diagnosesLbl: UILabel! @IBOutlet weak var reasonforadmitorconsultLbl: UILabel! @IBOutlet weak var goalofhospitalizationLbl: UILabel! @IBOutlet weak var seenoseeLbl: UILabel! @IBOutlet weak var notestocboLbl: UILabel! @IBOutlet weak var commentsLbl: UILabel! @IBOutlet weak var hospitalLbl: UILabel! @IBOutlet weak var teamLbl: UILabel! override func awakeFromNib() { super.awakeFromNib() } func configurePatDataCell(ptdata: PTData) { ptnameLbl.text = ptdata.ptname dobLbl.text = ptdata.dob finLbl.text = ptdata.fin officemdLbl.text = ptdata.officemd assignedmdLbl.text = ptdata.assignedmd assigneddateLbl.text = ptdata.assigneddate roomnumberLbl.text = ptdata.room diagnosesLbl.text = ptdata.diagnoses reasonforadmitorconsultLbl.text = ptdata.reasonforadmitorconsult goalofhospitalizationLbl.text = ptdata.goalofhospitalization seenoseeLbl.text = ptdata.seenosee notestocboLbl.text = ptdata.notestocbo commentsLbl.text = ptdata.comments hospitalLbl.text = ptdata.hosp teamLbl.text = ptdata.team } }Second ViewControllerclass PatdataVC: UIViewController, UITableViewDelegate, UITableViewDataSource { var ptdatas = [PTData]() @IBOutlet weak var patDataTableView: UITableView! override func viewDidLoad() { super.viewDidLoad() patDataTableView.delegate = self patDataTableView.dataSource = self } func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return ptdatas.count } func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { if tableView == patDataTableView { let cell = tableView.dequeueReusableCell(withIdentifier: "PatdataCell", for: indexPath) as? PatdataCell cell!.configurePatDataCell(ptdata: ptdatas[indexPath.row]) return cell! } return UITableViewCell() } }
Posted
by eduardo73.
Last updated
.