Comment charger des données dans mon UITableView
? Quelqu'un peut-il s'il vous plaît m'aider avec ce problème:
pourquoi ne pas charger dans cellForRowAt
import UIKit class cellTableViewCell: UITableViewCell { @IBOutlet weak var Location: UILabel! @IBOutlet weak var DepartureTime: UILabel! override func awakeFromNib() { super.awakeFromNib() } override func setSelected(_ selected: Bool, animated: Bool) { super.setSelected(selected, animated: animated) } }
import UIKit class StoreListMainViewController: UIViewController,UITableViewDelegate, UITableViewDataSource{ // TableView @IBOutlet weak var tableView: UITableView! var StoreLocation: [String] = [] var getDepartureTime: [String] = [] override func viewDidLoad() { super.viewDidLoad() createTableiew() }//Main Method // TableView func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { return 50 } func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return StoreLocation.count } func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as? cellTableViewCell cell!.Location.text = StoreLocation[indexPath.row] cell!.DepartureTime.text = getDepartureTime[indexPath.row] print("cell!.Location.text ==>\(String(describing: cell!.Location.text) )") return cell! } func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { let vc = storyboard?.instantiateViewController(withIdentifier: "gotoTempMonitorStoreList") as? StoreListTempMonitorViewController self.navigationController?.pushViewController(vc!, animated: true) } // Create UI Table view func createTableiew() -> Void { tableView.delegate = self tableView.dataSource = self }//createTableiew
3 Réponses :
rechargez tableview tableView.reload ()
où vous avez reçu des données.
Puisque vous n'utilisez pas un UITableViewController
, vous devez définir un délégué et une source de données sur votre objet tableView
.
Ressemble à quelque chose comme ceci:
override func viewDidLoad() { tableView.dataSource = self tableView.delegate = self }
C'est tout. Profitez
Je vous suggère de récupérer d'abord les données, puis d'essayer de recharger votre vue de tableau. Une fois que vous avez défini le tableau sur les valeurs de table automatiquement, ils seront affichés dans le tableau à condition que vous codiez les propriétés de l'objet aux valeurs Outlet de la cellule.
où est-ce que vous visualisezdidload avez-vous approuvé votre délégué tableview dedans également après avoir récupéré des données vous devez recharger votre table
D'après votre code, il semble que vous ayez plusieurs problèmes qui peuvent l'empêcher de charger les données. Dans le
cellForRowAt
, vous définissez deux valeurs sur deux libellés, mais le tableauStoreLocation
que vous utilisez comme source de données n'est qu'un tableau de chaînes. Tout d'abord, pourriez-vous dire ce qui estjsonResponsePlanDetail
et peut-être montrer un exemple de sa structure ici?@Isuru Je suis codé à jour, veuillez me suggérer à nouveau
@ Nardanong.s Je ne vois toujours pas ce qu'est
jsonResponsePlanDetail
? Le nom suggère qu'il s'agit d'une réponse JSON. Pouvez-vous montrer à quoi il ressemble?@Isuru Je suis le code mis à jour et je montre déjà jsonResponsePlanDetail. Veuillez me suggérer. pourquoi la date ne peut pas se charger dans cellForRowAt
@Isura Je peux charger des données dans cellForRowAt dans TableView terminé.Merci.