TableViewCell не отображает данные - PullRequest
0 голосов
/ 17 мая 2018

У меня есть ячейка табличного представления, которая должна отображать только метку, но она вообще ничего не показывает, когда я запускаю свое приложение.Я даже пытался изменить textLabels в моем коде, но все еще ничего.Я также попытался изменить цвет фона ячейки, который работал в раскадровке, но когда я фактически запускаю приложение, ничего не меняется.Я полностью отключил свой контроллер представления, чтобы увидеть, был ли мой код в проблеме, и все же ничего не произошло, так как я вижу, что это не мой код, а само представление.Хотя я могу ошибаться.Вот как выглядит мой взгляд сейчас: tableviewdata

//
//  TableViewController.swift
//  streamingVideo
//
//  Created by Connor Woodford on 5/15/18.
//  Copyright © 2018 Connor Woodford. All rights reserved.
//

import UIKit

struct Courses: Decodable {
    let id: String
    let title: String
    let location: String

}

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {



    var courses = [Courses]()

    @IBOutlet weak var arg: UITableView!


    override func viewDidLoad() {
        super.viewDidLoad()

        fetchJSON()


        // Uncomment the following line to preserve selection between presentations
        // self.clearsSelectionOnViewWillAppear = false

        // Uncomment the following line to display an Edit button in the navigation bar for this view controller.
        // self.navigationItem.rightBarButtonItem = self.editButtonItem
    }

    func fetchJSON() {

        let urlString = "http://homevideostuff.192.168.1.14.xip.io:8888/getClasses.php"
        guard let url = URL(string: urlString) else { return }
        URLSession.shared.dataTask(with: url) { (data, _, err) in
            DispatchQueue.main.async {
                if let err = err {
                    print("Failed to get data from URL:", err)
                    return
                } else {

                    print("Loaded URL")
                }

                guard let data = data else { return }

                do {
                    let decoder = JSONDecoder()
                    self.courses = try decoder.decode([Courses].self, from: data)
                    print(self.courses)

                } catch let jsonErr {
                    print("Failed to decode JSON", jsonErr)
                }
            }

            }.resume()
    }

    // MARK: - Table view data source

    func numberOfSections(in tableView: UITableView) -> Int {
        // #warning Incomplete implementation, return the number of sections
        return 0
    }

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        // #warning Incomplete implementation, return the number of rows
        return courses.count
    }

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

        let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! TableViewCell

        let sweet = courses[indexPath.row]

        let bgColorView = UIView()
        bgColorView.backgroundColor = UIColor.black
        cell.selectedBackgroundView = bgColorView

        cell.textLabel?.text = "sdafasdfs"
        cell.detailTextLabel?.text = sweet.location

        print("azDFASDFASDFAS")
        return cell
}
}

Ответы [ 2 ]

0 голосов
/ 17 мая 2018
  func numberOfSections(in tableView: UITableView) -> Int {
        // #warning Incomplete implementation, return the number of sections
        return 0
    }

Вам необходимо вернуть хотя бы 1 раздел, так как строка является дочерней по отношению к разделу

0 голосов
/ 17 мая 2018

Вы должны перезагрузить данные после выборки course, имя вашей таблицы arg

self.arg.reloadData() по окончании выборки courses

после этой строки

 self.courses = try decoder.decode([Courses].self, from: dat
--> self.arg.reloadData()
...