UITableView自定义类不显示结果

时间:2018-04-26 18:47:35

标签: swift

我在故事板上有一个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 :(得分:2)

在类级别声明customTable引用。一旦它离开viewDidLoad方法的范围,它就变为零。