簡體   English   中英

Swift Xcode TableViewCell 未第一次加載

[英]Swift Xcode TableViewCell's Not Loading First Time

我有一個與TableViewController的按鈕,當我第一次單擊該按鈕時,TableView 不會加載,但是當我返回並再次單擊時,我的數據會加載。

我試圖設置斷點但 tableview 函數沒有加載? 這有什么原因嗎?

編輯:

這是我的 TableView 代碼,如果需要任何其他代碼,請告訴我。


   class ServicesDisplay: UITableViewController {

    @IBOutlet var MainTitle: UILabel!
    
    @IBOutlet var image: UIImageView!
    let db = Firestore.firestore()

    override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        myIndex = indexPath.row
        performSegue(withIdentifier: "seque", sender: self)
        
    }
    
    override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        return 260
    }
    
    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        let jsonFbPic = (jsonFile["SecondScreen"])
            let test = ((jsonFbPic["Services Image"]))
        let count = ((test["Image\(myIndex)"]))
        
        
        if count.count == 0 {
            
            return serviceTextArray.count
            
        } else {
        
        return count.count

        }
    }

    
    
    
    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! CustomServicesCell
        
        cell.serviceText?.text = serviceTextArray[indexPath.row]
       
        //Variables
        let Json = jsonFile["SecondScreen"]
        let MainTitleJson = Json["Text"]
        let MainTitleSize = CGFloat(Int("\(MainTitleJson["Size"])")!)
        //Main Title:
        cell.serviceText.font = UIFont(name: "\(MainTitleJson["Font"])", size: MainTitleSize)
        cell.serviceText.textColor = hexStringToUIColor(hex: "\(MainTitleJson["Color"])")
        cell.serviceImage?.loadImagesFromCacheWithUrlString(myIndex: indexPath.row, labelName: serviceTextArray[indexPath.row], CellImage: cell.serviceImage)
        cell.selectionStyle = .none
        
        return cell
    }
    
    
    
        
    
    public func hexStringToUIColor(hex: String) -> UIColor {
          var cString: String = hex.trimmingCharacters(in: .whitespacesAndNewlines).uppercased()
          var rgbValue: UInt64 = 0
          if cString.hasPrefix("#") {
              cString.remove(at: cString.startIndex)
          } else if cString.count != 6 {
              return UIColor.black
          }
          Scanner(string: cString).scanHexInt64(&rgbValue)
          return UIColor(red: CGFloat((rgbValue & 0xFF0000) >> 16) / 255.0, green: CGFloat((rgbValue & 0x00FF00) >> 8) / 255.0, blue: CGFloat((rgbValue & 0x0000FF)) / 255.0, alpha: CGFloat(1.0))
      }
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        
        DispatchQueue.main.async(execute: { () -> Void in
            self.tableView.reloadData()
        })
    }
    override func viewDidAppear(_ animated: Bool) {
        
    }
    

    
    // MARK: - Table view data source

   
    
  

}

很抱歉將其發布為答案,但我也是 stackOverFlow 的新手。 這是因為您在從服務器獲取數據之前執行 segue。 在數據獲取完成后執行 segue 作為完成。 如果是這種情況,請告訴我!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM