Пользовательский класс UITableView не показывает результаты - PullRequest
0 голосов
/ 26 апреля 2018

У меня на раскадровке ViewController.

TestViewController.swift

class TestViewController: UIViewController {

var users : Dictionary = [String:User]()

let customTableView : UITableView = UITableView()

override func viewDidLoad() {
    super.viewDidLoad()

    customTableView.register(UITableViewCell.self, forCellReuseIdentifier: "userCell")
    let customTable = CustomTable(users:users)
    customTableView.delegate = customTable
    customTableView.dataSource = customTable

    view.addSubview(customTableView)

    customTableView.translatesAutoresizingMaskIntoConstraints = false

    customTableView.topAnchor.constraint(equalTo: self.view.topAnchor).isActive = true
    customTableView.bottomAnchor.constraint(equalTo: self.view.bottomAnchor).isActive = true
    customTableView.leadingAnchor.constraint(equalTo: self.view.leadingAnchor).isActive = true
    customTableView.trailingAnchor.constraint(equalTo: self.view.trailingAnchor).isActive = true

}

}

CustomTable.swift

class CustomTable: NSObject, UITableViewDelegate, UITableViewDataSource {

var users : Dictionary = [String:User]()
var userNames = ["Steve", "Joe", "Bob"]
var userIds = [String]()

init(users: [String:User]) {


}

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    print("HEY")
    return userNames.count

}

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

    print("HIHI")
    let cell = tableView.dequeueReusableCell(withIdentifier: "userCell", for: indexPath)

    let text = userNames[indexPath.row]
    cell.textLabel?.text = text

    return cell

}

}

numberOfRowsInSection - похоже, стреляет
cellForRowAt - не запускает / печатает "HIHI", поэтому моя таблица пуста.

Я переместил создание таблицы в viewDidAppear, ничего.

Я неустанно искал подобные ситуации, но, похоже, ничего не помогло. У кого-нибудь что-нибудь выпало или успешно с этим справилось?

1 Ответ

0 голосов
/ 26 апреля 2018

Объявление ссылки на настраиваемую таблицу на уровне класса. Становится нулевым, как только выходит из области видимости метода viewDidLoad.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...